cmd2
完成后我需要关注cmd1
。我有时需要暂停cmd1
。
我输入
$ cmd1 && cmd2
然后按Ctrl+Z (Stop)
停止cmd1
。现在,cmd1
已暂停,但当我恢复时,cmd2
完成后,cmd1
无法启动。
我输入
$ cmd1 ; cmd2
然后按Ctrl+Z (Stop)
停止cmd1
。现在cmd1
已暂停,但会立即启动cmd2
。但是,我希望仅在cmd2
完成后才开始cmd1
。
我做了一些研究,有人在zsh
中提出了一种优雅的方式,但我想知道在bash
中是否有一种优雅的方式。
答案 0 :(得分:10)
在子shell中运行它:
(cmd1 && cmd2)
示例:
$ (sleep 5 && echo 1) # started the command chain
^Z
[1]+ Stopped ( sleep 5 && echo 1 ) # stopped before `sleep 5` finished
$ fg # resumed
( sleep 5 && echo 1 )
1 # `sleep 5` finished and `echo 1` ran