我正在阅读BashFAQ/002,并且涉及以下重定向案例。我已经写过我对每个案例的理解,所以如果我错了,请发表评论。Bash:解释以下重定向案例
案例1
output=$(command 2>&1 >/dev/tty)
重定向到stderr
和stdout
比重定向到stdout
tty
。所以,现在stdout and stderr
重定向/输出到终端。
案例2
output=$(command 2>&1 >/dev/null)
重定向到stderr
和stdout
比重定向到stdout
/dev/null
。虽然我不明白这一点,因为现在两个stderr and stdout
都被丢弃。
案例3
output=$(command 3>&2 2>&1 1>&3-)
没有,任何的想法什么发生在这里。我不知道fd 3
。
案例4
exec 3>&1
output=$(command 2>&1 1>&3)
exec 3>&-
没有,再想法。
那么,有人可以向我详细解释案例#3和案例#4并指向相关文档。
案例2:'因为现在stderr和stdout都被丢弃' - _that_是发送到/ dev/null的点 - 丢弃它 – mcalex
^不正确。只有stdout被重定向到'/ dev/null' – doubleDown