linux - bash:静默杀死后台函数进程

标签 linux bash shell unix scripting

shell 大师,

我有一个 bash shell 脚本,我在其中启动了一个后台函数,比如 foo(),以显示一个无聊而冗长的命令的进度条:

foo()
{
    while [ 1 ]
    do
        #massively cool progress bar display code
        sleep 1
    done
}

foo &
foo_pid=$!

boring_and_long_command
kill $foo_pid >/dev/null 2>&1
sleep 10

现在,当 foo 死亡时,我看到以下文本:

/home/user/script: line XXX: 30290 Killed                  foo

这完全破坏了我原本非常酷的进度条显示的精彩。

我如何摆脱这条消息?

最佳答案

kill $foo_pid
wait $foo_pid 2>/dev/null

顺便说一句,我不知道您的进度条非常酷,但是您看过 Pipe Viewer (pv) 吗? http://www.ivarch.com/programs/pv.shtml

关于linux - bash:静默杀死后台函数进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719030/

相关文章:

c++ - 'directed to standard output (cout)' 是什么意思?

linux - Shell 脚本,删除文件而不将整个名称作为参数

regex - 多行正则表达式

linux - 查找命令结果,不会写入输出

shell - 有没有办法使用 awk 总结单个标识符的第二个字段并用非数字替换输出?

android - 跨子网查找和通信

linux - yum 更新显示已安装的软件包版本

bash - 删除 csv 文件的第一列

linux - 命令在终端而不是脚本中工作

linux - 增加变量号并分配新值