在shell脚本中将同步cmd等待直到第一个cmd完全执行

时间:2015-09-02 12:12:00

标签: bash shell synchronization

在shell脚本中,第二个cmd会等到第一个cmd完全执行,即同步文件夹?

例如:

cmd1 sync folder1 
cmd2 cp folder1 to folder2

此处同步完成后cmd2会运行吗?如果同步失败怎么办?

1 个答案:

答案 0 :(得分:4)

来自http://linux.die.net/man/8/sync

  

在Linux上,只保证同步调度脏块   写作;它可以在所有块之前花费很短的时间   终于写了。 reboot(8)和halt(8)命令将此转换为   在呼叫同步(2)之后睡觉几秒钟。

(我强调。)你应该也这样做。显然,必要的等待时间没有上限,也没办法(至少不是简单的用户)来验证磁盘是否处理了排队的命令,这有点令人不安。

当然,除了同步之外,所有类型的命令都存在此问题。邮件可能尚未发送,打印作业可能仍在排队等。另外,正如chepner所说,任何分支服务器或其他后台进程的命令(隐式地,没有&)将在进程仍在运行时返回