如何在Bash中暂停和恢复一系列命令?

cmd1完成后,我需要遵循cmd2 。 我需要暂停cmd1

当我input时

 $ cmd1 && cmd2 

然后按Ctrl+Z (Stop)停止cmd1 。 现在, cmd1已暂停,但是当我恢复时, cmd1完成后不会启动cmd2

当我input时

 $ cmd1 ; cmd2 

然后按Ctrl+Z (Stop)停止cmd1 。 现在cmd1暂停,但立即启动cmd2 ,我希望只有在cmd1完成后才能启动cmd2

我做了一些研究,有人build议在zsh一种优雅的方式,但是我想知道是否有一种在bash它的优雅方式。

在一个子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