コマンドがパイプで動作するかどうかはどうすればわかりますか?

コマンドがパイプで動作するかどうかはどうすればわかりますか?

私は次のコマンドを見ました。

docker inspect --format '{{.State.Running}}' $(docker ps -lq)

これ:

docker ps -l -q|while read cid b; do docker inspect -f '{{ .State.Running }}' $cid; done;

私の質問は、なぜ次のように書くことができないのですか?

docker ps -l -q|docker inspect -f '{{.State.Running}}'

docker inspectパイプと機能しないため、どのコマンドが機能し、どのコマンドが機能しないかをどのように知ることができますか?

答え1

パイプは最初のプログラムの出力を取得し、次のプログラムに渡します。ある意味では、ユーザーが端末の2番目のプログラムに入力を入力するようになります。したがって、プログラムを実行し、プログラムの実行中に作業するファイルのリストを入力できる場合(たとえば)、パイプを使用して同じ操作を実行できます。

パイプで何ができるかについてのヒントは、プログラムのマニュアルで見ることができます。たとえば、パラメータman wgetに言及すると、標準入力(STDINとも呼ばれます)からファイルが読み込まれます。だからあなたはより効率的にすることができます。-i-i -cat list-of-links.txt | wget -i -wget -i - < list-of-links.txt

関連情報