このコマンドを使用するときは、cat <<< Hey > text.txt text.txt
text.txtファイルに「Hey」を書き、ファイルを表示したいと思います。しかし、出力はありません。 Bashは実際にそれをどのように解釈しますか?
コマンドと出力:
$ cat <<< Hey > text.txt text.txt
$ cat text.txt
$
答え1
リダイレクトを少し並べ替えると意味があるかもしれません。
<<< Hey > text.txt cat text.txt
Hey
この文字列はcatの標準入力に送信されます。text.txt
書くために開いて切りました。したがって、その中にテキストがあると消えます。
cat
パラメータを使用して実行されますtext.txt
。ファイルはパラメータとして提供されるため、標準入力を無視するためHey
使用されません。text.txt
切り捨てて引数がcat
実行されたときにtext.txt
出力するものがないため、text.txt
標準出力、つまりリダイレクトを通じて空にcat
なります。