对 Bash 脚本的作业控制

for*_*rin 2 ffmpeg job-control shell-script

我有一个一千行的 Bash 脚本,每行都包含一个ffmpeg命令。我从source script它开始,它运行得很好。

然而,当我尝试以各种方式控制这个脚本时,事情完全出错了:

  • 如果我这样做Ctrl + Z暂停整个事情,只有当前的 ffmpeg命令被暂停,下一个开始!不是我想要的!
  • 如果我Ctrl + C要停止一切,脚本会跳转到下一个ffmpeg命令,我必须对脚本中的每一行按一次才能最终停止一切。纯粹的地狱。
  • 我尝试ps -ef从另一个 shell使用来定位source命令以从那里暂停/终止它,但它不存在于列表中。

那么我怎样才能按照我希望的方式暂停/停止父脚本呢?或者,我如何才能以不同的方式开始执行脚本,让我对它进行适当的控制?

Joh*_*ohn 5

尝试将脚本作为脚本运行而不是获取它:

$ bash <scriptname>
Run Code Online (Sandbox Code Playgroud)