大佬教程收集整理的这篇文章主要介绍了将值从C程序返回到bash脚本,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个C程序(在Linux上)计算双重结果,我想写一个bash脚本,运行程序可变次数,并为我平均这些结果.为简单起见,请考虑以下代码:
main.cpp中:
int main() {
cout << "Some other stuff\n";
double result = foo();
return 0;
}
script.sh:
sum = 0
num = $1
for((i = 0; i < $num; i++)); do
result = ./a.out; #store the result somehow?
sum = $sum + $result
done
avg = $sum / $num
echo "Average: " $avg
有没有一种简单的方法可以将程序的结果传回bash脚本?我读到了使用退出代码,但返回类型是一个双,所以我认为这不会起作用.从字符串输出中解析值是不实用的,因为程序具有其他终端输出.
int main() {
cerr << "This is output that won't be captured." << endl;
cout << "3.141592" << endl;
}
并使用命令替换来捕获它:
result=$(./a.out)
一个更丑陋的方法是不需要更改输出就是写入另一个文件描述符:
int main() {
char* foo = "3.141592\n";
write(42,foo,strlen(foo));
}
这将让您捕获输出:
result=$(./a.out 42>&1 > /dev/null)
请注意,您的shell脚本有几个语法错误.尝试shellcheck自动整理其中的许多内容,并随时发布有关您无法解决的问题的问题.
以上是大佬教程为你收集整理的将值从C程序返回到bash脚本全部内容,希望文章能够帮你解决将值从C程序返回到bash脚本所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。