假设我有一个名为Foo.c的C程序,它正在打印几个东西,并返回一个名为rc的值,我正在我的shell程序中执行如下:
foobar = $(Foo | tail -1)
现在,变量foobar具有程序Foo的最后打印值.但是不用打扰这个,我想在我的shell程序中得到程序的返回码rc.
您可以使用“set -o pipefail”选项.
[root@myserver Test]# set -o pipefail [root@myserver Test]# ./a.out | tail -l [root@myserver Test]# echo $? 100
这里我的程序a.out返回100.
或者另一个选择是使用pipestatus环境变量.你可以在这里阅读.
http://www.linuxnix.com/2011/03/pipestatus-internal-variable.html