エコとパイプ、キャットの組み合わせ

エコとパイプ、キャットの組み合わせ

temp.csv私のスクリプトには、中間ステップの1つというファイルがあります。

echo "some info" > final.csv | cat temp.csv >> final.csv

final.csv時にはデータなしでファイルが生成されることがありますtemp.csv(スケジューラを介して実行されている場合)。その後、ジョブを再実行すると、期待final.csvどおりに作成されます。

なぜこれが起こるのですか(コマンドで正確に何が起こっていますかecho "some info" > final.csv | cat temp.csv >> final.csv?)
コマンドを次のように置き換えると:

echo "some info" > final.csv ; cat temp.csv >> final.csv 

この修正は役に立ちますか?

ベストアンサー1

出力echo "some info" > final.csvをにパイプcat temp.csv >> final.csvするので、2つのコマンド(echoおよびcat)が並列に実行されます。

したがって、最終結果はスケジュールされfinal.csvたプログラムに依存します。あなたが望むのはそれ|に変えることです;。その後、echoコマンドは完了するまで実行され、次にcat開始されます。

おすすめ記事