我的目标是在后台调用一个过程(创建一个排序的进度指示器)并在主要任务完成后将其终止(在这种情况下只是一个睡眠功能)。我能够以一种相当简单的方式实现这一目标。
我的问题是,为什么脚本输出有所不同,其中它会因为函数被杀死后的睡眠函数而抱怨程序被终止?
#!/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