【发布时间】:2014-07-24 18:56:34
【问题描述】:
我正在尝试制作一个严格控制标准输出的脚本。所以我将所有内容重定向到 /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?
【问题讨论】:
-
问题是文件名后面的分号。它分隔命令。而是说:
tar zxvf samplefile.tar > /dev/null 2>&1 -
因为你写了
tar zxvf samplefile.tar;。只需删除分号,它将删除消息并显示正确的$?值 -
感谢 devnull 、Subbeh 和 Ploutox。它奏效了。
-
@user2809888 您能否将答案添加为下面的真实答案,以免问题被标记为未回答?
标签: linux shell unix scripting