如何在 bash 或 zsh(或者其他 shell)中暂停整个命令序列?
例如,如果我运行:
sleep 100; echo foo
并按下Ctrl+ Z,sleep
被暂停并进入后台,但echo
随后立即运行。
我希望后者不要发生,即应该在恢复并完成echo
后运行。sleep
答案1
从子 shell 执行它们:
( sleep 100 ; echo foo ; )
而 ctrl+z 将冻结整个子shell,而不仅仅是一个命令:
^Z
[1]+ Stopped ( sleep 100; echo foo ; )