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

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

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

#!/bin/bash
tar -Pcf /home/temp_backup.tar /home/myfiles/
wait %%
/home/ftp.sh

答案1

你已经在这么做了。

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

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

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

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

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

答案2

您可以使用:

wait $!

wait %%从脚本中删除。

相关内容