我有 2 个命令,我正在通过 shellcommand1
和command2
. command1 需要很长时间才能完成(约 2 分钟)。所以我可以让它在后台运行,&
但之后我想自动执行command2。我可以在 shell 命令行上执行此操作吗?
尝试:
( command1; command2 ) &
编辑:更大的 PoC:
演示.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
请注意,脚本在“脚本中的最后一个命令”之后结束,但后台进程在 5 秒后执行其“结束后台进程”回显。(...)& 结构中的所有命令都是串行运行的,但都集体分叉到后台。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句