我在shell command1
和command2
上执行了2个命令。 command1需要很长时间才能完成(约2分钟)。所以我可以使用&
在后台运行它,但之后我想自动执行command2。我可以在shell命令行上执行此操作吗?
答案 0 :(得分:3)
尝试:
( command1; command2 ) &
编辑:更大的PoC:
demo.sh:
#!/bin/bash
echo Starting at $(date)
( echo Starting background process at $(date); sleep 5; echo Ending background process at $(date) ) &
echo Last command in script at $(date)
运行demo.sh:
$ ./demo.sh
Starting at Thu Mar 1 09:11:04 MST 2018
Starting background process at Thu Mar 1 09:11:04 MST 2018
Last command in script at Thu Mar 1 09:11:04 MST 2018
$ Ending background process at Thu Mar 1 09:11:09 MST 2018
请注意,该脚本在脚本"中的" Last命令后结束,但后台进程执行了"结束后台进程"回声5秒钟后。 (...)&中的所有命令。结构是连续运行的,但都是统一分叉到后台。
答案 1 :(得分:2)
你可以把这两个赞誉放在一个shell脚本中,如下所示: -
command1 &
wait
command2 & #if you want to run second command also in background