首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将C++输出捕获到Bash变量?

如何将C++输出捕获到Bash变量?
EN

Stack Overflow用户
提问于 2018-06-01 08:58:56
回答 2查看 366关注 0票数 0

我想通过Bash编译并运行一个C++程序,然后将cout (将是一个整数)产生的输出捕获到Bash脚本中的一个变量中。

我目前可以将输出定向到文本文件,如下所示:

./prog >> output.txt

我的研究将我带到了这一点,它似乎正在创建一个空字符串:

output=$(./prog) | bc -l

如果它是相关的,我会尝试捕获这个值,这样我就可以在多次执行时对我的程序的输出进行平均。下面是我当前的整个脚本:

代码语言:javascript
复制
count=1
while [ $count -le 8192 ]
do
    sum=0
    arraysize=$(( $count * 1024 ))
    g++-7 prog.cpp -DGLOBAL=${arraysize} -DLOCAL=32 -o prog -lm -fopenmp -framework OpenCL
    for try in {0..9}
    do
        output=$(./prog) | bc -l
        echo ${output} # this line appears to print an empty string
        sum=$(( (sum + output) ))
    done
    echo ${sum / 10}
    count=$(( $count * 2 ))
done

我知道上面的脚本中可能还有其他错误,但目前让我感到困惑的是,它只是捕获了程序所产生的价值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 09:04:19

有多种方法,但其中一种是使用反引号字符:

代码语言:javascript
复制
VAR=`./prog`
票数 2
EN

Stack Overflow用户

发布于 2018-06-01 09:03:32

以下是可能会有所帮助的内容:

代码语言:javascript
复制
var=$(./prog)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50634725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档