如何在变量中返回程序的输出?

pkm*_*pkm 4 bash

任何人都可以告诉我如何从命令行返回变量中的程序输出吗?

var = ./a.out params
Run Code Online (Sandbox Code Playgroud)

我试图从命令行运行它时将程序的输出变为变量.

Ale*_*lko 10

要将程序输出保存到stdoutUnix shell中的变量中,无论编写什么语言程序,都可以使用这样的东西

var=`./a.out params`
Run Code Online (Sandbox Code Playgroud)

或这个

var=$(./a.out params)
Run Code Online (Sandbox Code Playgroud)

切记不要在=操作员之前或之后放置空格.

  • @mkp程序所使用的语言是无关紧要的,这个答案中的赋值将把所有写入`stdout`并将它放在环境变量`var`中.如果程序`a.out`是用C,C++,Fortran或[Whitespace](http://en.wikipedia.org/wiki/Whitespace_%28programming_language%29)编写的并不重要. (3认同)
  • `$(./ a.out)`的优势在于你可以嵌套为:`$(echo $(echo a))`,而使用反引号这是不可能的 (2认同)

Som*_*ude 0

为了补充rasen 的答案,要将变量从程序内部获取到外部环境,您需要将其打印到stdout.

使用另一个答案中提供的语法只需获取所有输出stdout并将其放入 shell 环境变量中var