【发布时间】:2015-12-26 19:23:42
【问题描述】:
假设我有一个名为 Foo.c 的 C 程序,它正在打印一些东西并返回一个名为 rc 的值,我在我的 shell 程序中执行如下:
foobar=$(Foo | tail -1)
现在,变量 foobar 具有程序 Foo 的最后打印值。但是在不打扰这一点的情况下,我想在我的shell程序中获取程序的返回码rc。
【问题讨论】:
-
使用
$?变量。 -
我不确定 $?在这种情况下有效,因为他使用的是管道。所以最后执行的命令是tail -1。
-
我做了一个简单的测试,它不起作用。最后返回的值为尾部返回码
-
它不工作。美元?即使我将
rc值硬编码为rc=100; return rc;,变量也会显示值 0 -
查看man bash:管道的返回状态是最后一条命令的退出状态