1
是否ls -l /path/to/dir/*.extension 1>&- 2>&-
关闭stdout和stderr(1>& - 2>& - )修改退出状态?
真的给退出状态为2
即使存在与.extension
文件还是我做一些错了吗?
我在做什么1>&- 2>&-
我正在关闭命令的stdout和stderr,它不应该对命令的退出状态做任何事情!
但作为一个希望以下总是工作很细:
ls -l /path/to/dir/*.extension &>/dev/null
退出状态是0
预期。
只是寻找这种行为的解释。
#UNDERSTANDING
在由西蒙·里希特给出答案的基础: 如果我们这样做
[email protected]:exp$ echo "Life" 1>&-
-bash: echo: write error: Bad file descriptor
它抛出错误,因为回声无法写入stdout和 如果我们这样做
[email protected]:exp$ echo "Life" 1>&- 2>&-
我们甚至不会知道错误,直到我们检查的时间$?
1>/dev/null 2>&1 – MLSC