使用命令延迟构建脚本

时间:2016-11-13 09:19:51

标签: bash shell command-line terminal command-line-interface

我在命令行中使用了3个命令,因为我一遍又一遍地这样做我想构建一些脚本,问题如下:

这就是我正在做的事情

1。 cd users/home/d56789/tmp - > tar czf ../fts/runnerer.tar App /

大约需要2秒

2。 cd users/home/d56789/fts - > cf update-run myBP -p / home / d56789 / fts / -i 4

大约需要8秒

  1. cd users/home/d56789/myapp - > cf push
  2. 大约需要30秒

    我的问题是如何构建可以一个接一个地执行此命令的脚本,并且它们之间存在所需的延迟

2 个答案:

答案 0 :(得分:1)

命令通常按顺序执行。 例如,问题中的tar命令, 当它在运行时 你无法开始运行别的东西。 你必须等待它完成。

因此,您只需列出要在脚本中执行的命令, 他们将一个接一个地执行。 一个命令需要2秒或22秒无关紧要, 在上一个命令完成之前,下一个命令不会运行。

set -e

cd users/home/d56789/tmp
tar czf ../fts/runnerer.tar App/
cd ../fts
cf update-run myBP -p /home/d56789/fts/ -i 4
cd ../myapp
cf push

为了您的安全,我在顶部添加了set -e。 它的作用是,如果任何命令失败, 脚本将退出而不执行其余的操作。

如果你因某种原因确实需要延迟(我在你的问题中没有看到这样的理由), 然后你可以使用sleep命令。 它需要秒数作为参数, 所以要睡10秒跑sleep 10, 睡5分钟sleep 300

答案 1 :(得分:0)

如果您知道要花多长时间,可以使用sleep <number of seconds>

cd  users/home/d56789/tmp
tar czf ../fts/runnerer.tar App/
sleep 2
cd users/home/d56789/fts
cf update-run myBP -p /home/d56789/fts/ -i 4
sleep 8
cd users/home/d56789/myapp
cf push

顺便说一下,有些命令等到它们完成(同步),该功能消除了sleep的需要。