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
開始されます。