最初のコマンドが 2 番目の形式で記述されている場合と同じように、2 つのコマンド$(git ls-files -s | wc -l)
が異なるか同じか、エラーが発生します。$(git ls-files -s >out && wc -l <out)
linux - $(git ls-files -s | wc -l ) と $(git ls-files -s >out && wc -l の違い
最初のコマンドが 2 番目の形式で記述されている場合と同じように、2 つのコマンド$(git ls-files -s | wc -l)
が異なるか同じか、エラーが発生します。$(git ls-files -s >out && wc -l
あなたの透明性は、background-color
理解するには JSFiddle を参照してください。何を達成したいのかわかりませんが、そのプロパティの使用をやめると、透明度が元に戻ります。
4
1 に答える
3
次のように、あるプログラムの出力を別のプログラムの入力にパイプする場合:
$(git ls-files -s | wc -l)
...プログラムは同時に実行されます。wc
受信するとすぐに行のカウントを開始します。パイプはまた、中間ファイルなしで の出力git
を の入力に転送します。wc
この場合、何らかの理由でコマンドが失敗してwc
も実行されるため、出力が得られることに注意してください (ほとんどの場合、)。git
wc
0
あなたの2番目の例では:
$(git ls-files -s >out && wc -l <out)
...git
コマンドが最初に実行され、その結果が というファイルに保存されout
ます。次に、それが成功した場合wc
は、行を実行してカウントします。のため&&
、git
コマンドが失敗wc
すると、まったく実行されません。どちらの場合でも、コマンドout
の結果を含むという名前のファイルが作成されます。git
配管は一般的に優れています。より高速に実行され、中間結果を保持する必要がなければ、副作用はありません。
于 2017-03-06T18:20:40.840 に答える
最初のコマンドが 2 番目の形式で記述されている場合と同じように、2 つのコマンド$(git ls-files -s | wc -l)
が異なるか同じか、エラーが発生します。$(git ls-files -s >out && wc -l
あなたの透明性は、background-color
理解するには JSFiddle を参照してください。何を達成したいのかわかりませんが、そのプロパティの使用をやめると、透明度が元に戻ります。
1 に答える
次のように、あるプログラムの出力を別のプログラムの入力にパイプする場合:
$(git ls-files -s | wc -l)
...プログラムは同時に実行されます。wc
受信するとすぐに行のカウントを開始します。パイプはまた、中間ファイルなしで の出力git
を の入力に転送します。wc
この場合、何らかの理由でコマンドが失敗してwc
も実行されるため、出力が得られることに注意してください (ほとんどの場合、)。git
wc
0
あなたの2番目の例では:
$(git ls-files -s >out && wc -l <out)
...git
コマンドが最初に実行され、その結果が というファイルに保存されout
ます。次に、それが成功した場合wc
は、行を実行してカウントします。のため&&
、git
コマンドが失敗wc
すると、まったく実行されません。どちらの場合でも、コマンドout
の結果を含むという名前のファイルが作成されます。git
配管は一般的に優れています。より高速に実行され、中間結果を保持する必要がなければ、副作用はありません。