如何在 Bash 中挂起和恢复一系列命令



我有cmd2cmd1完成后需要遵循。我有时需要暂停cmd1

我输入

$ cmd1 && cmd2

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

我输入

$ cmd1 ; cmd2

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

我做了一些研究,有人提出了一种优雅的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

最新更新