-1
私はLinuxのパイプ上の割り当てに取り組んでいます。私はhello world
を印刷するプログラムを持っています。引数はありません。しかし、私はプログラムを実行し、コマンドライン引数を./a ls | wc
として提供します。私は出力0 2 11
を得ます、すなわちhello world
の出力はwc
にパイプを通して渡されます。誰かがこの行動を説明できますか?コマンドライン引数でパイプを使用する
私はLinuxのパイプ上の割り当てに取り組んでいます。私はhello world
を印刷するプログラムを持っています。引数はありません。しかし、私はプログラムを実行し、コマンドライン引数を./a ls | wc
として提供します。私は出力0 2 11
を得ます、すなわちhello world
の出力はwc
にパイプを通して渡されます。誰かがこの行動を説明できますか?コマンドライン引数でパイプを使用する
あなたのプログラムが引数を取らないので、あなたは、引数としてそれをls
を通過したという事実は、その出力に違いはありません:それはその引数を無視し、まだhello world
発光だ、それはls
が渡されていなかったならば同じようにその引数リスト
パイプラインがFIFOをセットアップすること、つまり2つのプログラムを接続することを理解してください。
./a ls ## this program's output...
wc ## ...is connected to this program's input.
パイプラインは、従って、引数a
にありません。 出力のa
をルーティングする方法についてのシェルへの指示です。この場合は、標準入力にwc
というようにルーティングするよう指示されています。
何を説明しますか?なぜあなたはそれを期待していませんか? –
...その質問は修辞的ではありませんでした:あなたの現在の理解が何であるかを知っていない限り、その理解の問題にどのように対処しているのか、 –
(あなたがWindowsを利用している場合は、ユーザが指定した文字列でコマンドが独自の引数リストを解析する世界に慣れている可能性があります。コマンドが取得する唯一のものは、引数ごとに1つの、個々の文字列のC配列です)。 –