最初のコマンドが 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も実行されるため、出力が得られることに注意してください (ほとんどの場合、)。gitwc0
あなたの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も実行されるため、出力が得られることに注意してください (ほとんどの場合、)。gitwc0
あなたの2番目の例では:
$(git ls-files -s >out && wc -l <out)
...gitコマンドが最初に実行され、その結果が というファイルに保存されoutます。次に、それが成功した場合wcは、行を実行してカウントします。のため&&、gitコマンドが失敗wcすると、まったく実行されません。どちらの場合でも、コマンドoutの結果を含むという名前のファイルが作成されます。git
配管は一般的に優れています。より高速に実行され、中間結果を保持する必要がなければ、副作用はありません。