Bashリダイレクトを理解しようとしていますが、奇妙な例を見つけました。次の対話を考えます。
1: $ echo "Hello" 11>txt 11<&1
2: Hello
3: $ cat txt
4: $ echo "Hello" 11>txt 1>&11
5: $ cat txt
6: Hello
私の目には1行と4行が完全に対称に見えますが、なぜ同じ結果が出ないのですか?
ベストアンサー1
@chorobaは素晴らしい答えを提供しましたが、説明はありませんでした。だから。
echo "Hello" 11>txt 11<&1
- 標準出力 - >端子
11>txt
txtファイルをfd / xで開くfd / 11をfd / xにリダイレクトする(fd / xの数字をfd / 11にコピー)11<&1
fd/11 を fd/1 にリダイレクトします (fd/1 から fd/11 に番号をコピー)。
fd/11 は fd/1 (ターミナル) と同じです。 fd / xはファイルを指します(しかし、私たちはxを知りません)。
echo "Hello" 11>txt 1>&11
- 標準出力 - >端子
11>txt
txtファイルをfd / xで開くfd / 11をfd / xにリダイレクトする(fd / xの数字をfd / 11にコピー)1>&11
1を11にリダイレクトします(fd / 11の番号をfd / 1にコピー)。
fd/1、fd/11、および fd/x はファイルを指します。