这是一个后台脚本测试。
运行时启动两个进程,我不明白为什么。
睡觉后一站20。其他忘记。
#!/bin/bash
back(){
n=0
while [ 1 ]
do
echo $n
n=$(($n+1))
sleep 5
done
}
back &
sleep 20
exit
命令" ps -a"在电话中:
PID TTY TIME CMD
8964 pts/2 00:00:00 backgroundtest
8965 pts/2 00:00:00 backgroundtest
8966 pts/2 00:00:00 sleep
8982 pts/2 00:00:00 sleep
睡觉后20:
PID TTY TIME CMD
8965 pts/2 00:00:00 backgroundtest
9268 pts/2 00:00:00 sleep
然后永远运行......
为什么?
答案 0 :(得分:0)
while [ 1 ]
是一个无限循环。 [ 1 ]
永远是真的。
所以back &
是一个无限循环,在后台启动(&
),然后继续执行sleep 20
, 在20秒后结束,离开你有两个进程20秒(&
在后台启动一个新进程),然后是无限进程。