我在命令行中使用了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秒
users/home/d56789/myapp
- > cf push 大约需要30秒
我的问题是如何构建可以一个接一个地执行此命令的脚本,并且它们之间存在所需的延迟?
答案 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
的需要。