このコマンドは正確にどうなりましたか?

このコマンドは正確にどうなりましたか?

このコマンドを使用するときは、cat <<< Hey > text.txt text.txttext.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なります。

関連情報