自我重复的背景脚本

时间:2016-09-23 07:38:45

标签: linux bash shell process background

这是一个后台脚本测试。

运行时启动两个进程,我不明白为什么。

睡觉后一站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

然后永远运行......

为什么?

1 个答案:

答案 0 :(得分:0)

while [ 1 ]是一个无限循环。 [ 1 ]永远是真的。

所以back &是一个无限循环,在后台启动(&),然后继续执行sleep 20 在20秒后结束,离开你有两个进程20秒(&在后​​台启动一个新进程),然后是无限进程。