我正在尝试制作一个我严格想要控制标准输出的脚本。所以我将所有内容重定向到/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?
最佳答案
正如 Subbeh 和 Ploutox 提到的,我不应该使用“;”在两个命令之间。删除“;”后,重定向成为原始命令的一部分,并给出了正确的返回码。
但是我仍然不确定如果我们需要获得 ($?-1) 的退出状态可以使用什么。
关于linux - 如何查找倒数第二个命令的退出状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24032115/