リダイレクト3>&2と3<&2は違いますか?
違いは何ですか?
2
3>&2で入力が開かなかったため、エラーが発生する必要がありますか?
比較する:
{ seq 20 1<&2; } 2>/dev/null
{ seq 20 1>&2; } 2>/dev/null
編集:答え
どちらのコマンドも1と2の同じ反復を実行します。出力:
$ strace -f -e trace=dup,dup2 -o o2 sh -c 'seq 20 1>&2'
両方のコマンドは同じです(PID番号を除く)。
ベストアンサー1
dup2(2, 3)
いいえ、両方はまったく同じです。シェルは最終的3>&2
にと3<&2
。その後、fdは3
最終的に同じことを指します。ファイル説明を開くfd2と同じです。モード/方向には影響しません。ファイル説明を開く。開いたファイル記述のモード/方向を変更できません。
x>&y
と演算子はx<&y
省略された場合にのみ異なります。 (同じ)ですが(同じ)です。x
>&y
1>&y
1<&y
<&y
0<&y
0>&y