Ara*_*ind 5 shell pipe io-redirection
我temp.csv在我的脚本中调用了一个文件名,其中一个中间步骤是
echo "some info" > final.csv | cat temp.csv >> final.csv
Run Code Online (Sandbox Code Playgroud)
有时文件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
Run Code Online (Sandbox Code Playgroud)
这个修改会有帮助吗?
您正在将输出通过管道传递到echo "some info" > final.csvinto cat temp.csv >> final.csv,因此这两个命令 (echo和cat) 并行运行。
因此,最终的结果取决于final.csv安排的节目。您想要做的是将其替换|为;. 然后该echo命令将运行直到完成,然后才cat开始。