是否可以阻止脚本在杀死进程时在标准输出上打印“已杀死”?

时间:2021-07-22 15:26:52

标签: bash shell kill

我有一个简单的 shell 脚本,可以执行以下操作:

#!/usr/bin/bash
while read line; do
   *prints menu*
   *process 1* (e.g. pid=500)
   sleep 2
   *process 2* (e.g. pid=502)
   *while process 1 is active*; do
      sleep 1
    kill -9 502

在第一个 while 循环中,一切都在正确的位置进行,如果 process 1process 2 之前终止,则它被杀死。问题出在第二个周期之后:当第 i 个周期开始时,它总是打印如下内容:

script.sh: line "n": 502 Killed             ( python3 program_name argv[1] ecc...)

有人知道如何避免这种打印吗?该脚本应该可以工作(我使用 ps -a 进行了检查,当 pid 500 终止时,pid 502 会立即终止)但该打印并不优雅。

1 个答案:

答案 0 :(得分:0)

如果你不想要一个命令的标准输出,

command > /dev/null

如果您不想只为命令使用 stderr,

command 2> /dev/null

如果您不想只为一个命令同时输出 stdout 和 stderr,

command > /dev/null 2>&1