誰でも次のコードスニペットで私を助けることができますか -
echo Start|cat>>log
私が試したとき
echo Start>>log
ログファイルに同じ出力を与えました。2 つのコマンドの違いを説明できる人はいますか?
cat
引数を取ってそれを使用するか、引数を指定しない場合は標準入力を使用することができるプログラムの 1 つです。つまり、次のようになります。
cat xyzzy
ファイルを開き、xyzzy
その内容を出力します。コマンドは次のとおりです。
cat
独自に標準入力を読み取り、それを標準出力に送信します。
したがって、引数なしで出力をパイプすることは、余分なプロセスを作成することを除けば、出力を引数なしcat
で送信することと同じです。つまり、これら 2 つは機能的に同一です。 cat
echo xyzzy | cat
echo xyzzy
どちらも使用できますが、後者 (上記の私の例と質問の両方) では、使用するプロセスとキーストロークが 1 つ少なくなります。フィルター自体はcat
、データをそのまま通過させるだけなので、必要ありません。