如何在 shell 中挂起整个命令序列?

par*_*uid 5 bash zsh shell

如何在 bash 或 zsh(或者其他一些 shell)中暂停整个命令序列?

例如,如果我运行:

sleep 100; echo foo
Run Code Online (Sandbox Code Playgroud)

并按Ctrl+ Zsleep暂停并置于后台,但echo随后立即运行。

我希望后者不会发生,即echo应该在sleep恢复并完成后运行。

rus*_*ush 6

从子shell执行它们:

( sleep 100 ; echo foo ; )
Run Code Online (Sandbox Code Playgroud)

并且 ctrl+z 将冻结整个子shell,而不仅仅是一个命令:

^Z
[1]+  Stopped                 ( sleep 100; echo foo ; )
Run Code Online (Sandbox Code Playgroud)