Centos7

在 Centos 6 上不遵守命令順序,在 Centos 7 上不存在

  • October 6, 2020

我有以下命令,它作為通過 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}')然後按預期工作 - 就像最終命令在其餘部分完成之前執行一樣。

我可以在這裡做些什麼來強制這些命令以預期的順序執行嗎?

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}

引用自:https://serverfault.com/questions/1036594