我有以下命令,该命令作为通过 ssh 连接在远程机器上执行的脚本的一部分执行:
cd /var/spool/some_directory ; tar -cf file_name.tar file_1.txt file_2.txt file_3.txt ; echo $(du -m -- file_name.tar | awk '{print $1}')
我有 Centos 7.6 机器,执行起来很完美。但是我也有旧版 Centos 6.7 机器,遇到以下错误:
du: cannot access `file_name.tar': No such file or directory
tar: echo: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
当我 ls 目录时,我确实看到生成了预期的 file_name.tar 文件。echo $(du -m -- file_name.tar | awk '{print $1}')
独立于上述命令运行后,一切按预期进行 - 就像最后一个命令在其余命令完成之前运行一样。
我可以做些什么来强制这些命令按照预期的顺序运行?
答案1
echo $() 基本上是一个无操作。尝试
cd /var/spool/some_directory ; tar -cf file_name.tar file_1.txt file_2.txt file_3.txt ; du -m -- file_name.tar | awk '{print $1}