【发布时间】:2014-06-26 22:42:04
【问题描述】:
ls -l /path/to/dir/*.extension 1>&- 2>&- 有吗
即使存在带有.extension 的文件,也确实将退出状态设为2,还是我犯了一些错误?
我通过 1>&- 2>&- 知道的我正在关闭命令的 stdout 和 stderr,它不应该对命令的退出状态做任何事情!
但是正如人们所期望的那样总是很好:
ls -l /path/to/dir/*.extension &>/dev/null
退出状态如预期的那样是0。
只是为这种行为寻找解释。
#理解
根据 Simon Richter 的回答: 如果我们做类似的事情
jordan-a@hosties:exp$ echo "Life" 1>&-
-bash: echo: write error: Bad file descriptor
由于 echo 无法写入 stdout 和 如果我们这样做
jordan-a@hosties:exp$ echo "Life" 1>&- 2>&-
在我们检查$?之前,我们甚至不会知道错误。
【问题讨论】: