我有一个用来创建备份的脚本。我需要确保备份在运行/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 %%
从脚本中删除。