等待进程完成,然后再转到 shell 脚本中的下一行

Huj*_*let 7 tar shell-script

我有一个脚本来创建备份。在运行/home/ftp.sh命令之前,我需要确保备份已准备就绪。我怎么能这样做?我使用 CentOS 5.6

#!/bin/bash
tar -Pcf /home/temp_backup.tar /home/myfiles/
wait %%
/home/ftp.sh
Run Code Online (Sandbox Code Playgroud)

Kei*_*son 10

你已经在做了。

等待命令完成是 shell 的正常行为。(尝试sleep 5在 shell 提示符下输入。)唯一不会发生的情况是当您附加&到命令时,或者当命令本身做了一些有效的背景操作时(后者有点过于简单化)。

您可以wait %%从脚本中删除该命令;它可能只会产生一条错误消息,如wait: %%: no such job. (问题:它真的会打印这样的消息吗?)

您是否有任何证据表明该tar命令在命令开始之前没有完成/home/ftp.sh

顺便说一句,将用户主目录以外的内容直接放在/home.

(我知道评论中已经涵盖了大部分内容,但我认为应该有一个实际的答案。)