如何在后台运行无限循环,同时继续执行脚本?
示例“脚本”:
while true; do something_in_the_background; done
do_something_while_the_loop_goes_on_in_the_background
for 1 2 3; do somethingelse; done
exit 0
Run Code Online (Sandbox Code Playgroud)
这(注意&)似乎在短时间内使整个系统崩溃:
while true; do
something_in_the_background &
done
do_something_while_the_loop_goes_on_in_the_background
for 1 2 3; do somethingelse; done
exit 0
Run Code Online (Sandbox Code Playgroud)
Eri*_*ouf 40
在&循环内部,它将在后台启动一个新进程,并尽可能快地再次执行,而无需等待第一个进程结束。相反,我认为你想把循环放到后台,所以把&循环本身像
while /bin/true; do
something_in_the_background
done &
# more stuff
Run Code Online (Sandbox Code Playgroud)
Joh*_*ohn 13
while : ; do something ; done &
Run Code Online (Sandbox Code Playgroud)
早期的 Bourne shell 没有true和false作为内置命令。true取而代之的是简单地别名为:, 和false类似的东西let 0。
& 在该行的末尾将过程作为背景
: 是空命令,如“help :”所述: No effect; the command does nothing. Exit Status: Always succeeds.