我正在阅读BashFAQ/002并遇到以下重定向案例。我已经写了我对每个案例的理解,所以如果我错了,请发表评论。
情况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 并指出相关文档。