一尘不染

bash:默默杀死后台功能进程

linux

贝壳大师

我有一个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

这完全破坏了我本来非常棒的进度条显示的出色功能。

我如何摆脱此消息?


阅读 482

收藏
2020-06-03

共1个答案

一尘不染

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

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

2020-06-03