小编Ale*_*elo的帖子

如何停止在同一脚本中启动的后台进程,而不退出脚本?

我有一个程序需要一个可变的时间来运行(不超过两分钟),为了让它不那么令人讨厌,我放了幸运信息。

 #!/bin/bash
 ...
 for i in $(seq 1 45); do sleep 3; echo; echo; fortune; done &
 ...
Run Code Online (Sandbox Code Playgroud)

但是,程序持续时间可能会有所不同(取决于此处无关的因素)并且需要停止消息。

 #!/bin/bash
 ...
 for i in $(seq 1 45); do sleep 3; echo; echo; fortune; done &
 ...
 if [any-condition]; Then
      #script is over... Stop messages!!!
 fi
 ...
 if [any-condition]; Then
      #Stop messages... script continue execution
 fi
 ... Blah blah
 ...
 #script is over stop Messages!
Run Code Online (Sandbox Code Playgroud)

因此,如果我在 3 秒内准备 45 条消息,程序可能很快结束,但消息仍会出现在终端中,干扰其他工作。

我尝试使用 command jobs,但后台没有工作。尝试使用命令ps但找不到消息任务。

如何阻止那些幸运消息?

bash shell-script background-process

5
推荐指数
1
解决办法
2212
查看次数

标签 统计

background-process ×1

bash ×1

shell-script ×1