Bash脚本因为睡眠而抱怨终止函数

时间:2014-12-08 21:26:41

标签: linux bash

我的目标是在后台调用一个过程(创建一个排序的进度指示器)并在主要任务完成后将其终止(在这种情况下只是一个睡眠功能)。我能够以一种相当简单的方式实现这一目标。

我的问题是,为什么脚本输出有所不同,其中它会因为函数被杀死后的睡眠函数而抱怨程序被终止?

#!/bin/bash

function Progress(){
    echo -n "Working"
    while true
    do
        echo -n "."
        sleep 1
    done
}

echo "Calling the progress function"
Progress &
sleep 5
check=$!
kill $check >/dev/null 2>&1
echo -n "done"
sleep 1
echo ""

输出:

$ ./test.sh
Calling the progress function
Working.....done./test.sh: line 18:  3484 Terminated              Progress

没有睡眠(在倒数第二行):

$ ./test.sh
Calling the progress function
Working.....done

0 个答案:

没有答案