如何查找倒数第二个命令的退出状态?

时间:2014-06-04 08:07:02

标签: linux shell unix scripting

我正在尝试制作一个我严格要控制标准输出的脚本。所以我将所有内容重定向到/ dev / null并打印我自己的消息。

实施例

 user@root> tar zxvf samplefile.tar;> /dev/null 2>&1 ;echo $?  

 gzip: stdin: not in gzip format  
 tar: Child returned status 1  
 tar: Error exit delayed from previous errors  
 0  

tar命令失败但$?正在存储重定向的退出状态。我想要tar命令的退出状态。

查询:

如何获取tar命令的状态还将所有std输出重定向到/ dev / null?

1 个答案:

答案 0 :(得分:0)

正如Subbeh和Ploutox所提到的,我不应该使用";"在两个命令之间。删除";" ,重定向成为orignal命令的一部分,并给出了正确的返回码。

但是,如果我们需要退出状态($? - 1),我仍然不确定可以使用什么。