これら2つのコマンドの違いは何ですか?
cat /proc/uptime | awk '{print $1}'
< /proc/uptime awk '{print $1}'
具体的には、2番目のコマンドはどのように機能しますか?リダイレクト演算子ではない<
はコマンドを伴う必要がありますか?そのようなファイルのコンテンツをリダイレクトするとはどういう意味ですか?
一般に、foo < bar
と< bar foo
はbashスクリプトでは同等です。 < filename
がシェルによって処理されるときはいつでも、関連付けられているコマンドがその標準入力をそのファイルから取得することを意味します。これに追加のコマンドやプロセスは含まれません。シェルがそれを行います。
cat filename
を実行すると、指定したファイルの内容が読み取られ、標準出力に書き込まれます。 2つのコマンド間の|
は、左のコマンドの標準出力を右のコマンドの標準入力に接続することを意味します。
したがって、どちらのコマンドも/proc/uptime
の内容をawkに送信するのと同じ効果がありますが、最初の方法は、追加のcat
プロセスを開始して送信します。