私は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を詳細に説明し、関連するドキュメントを教えてもらえますか?