是否可以在后台执行while循环?

是否可以在后台执行while循环?

我正在创建一个 shell 脚本,并希望在后台执行某个 while 循环。通常,我会创建一个watch.sh包含以下内容的新文件:

while true; do ...; done

然后,在我的主 shell 脚本中我会执行以下操作:

nohup watch.sh >/dev/null 2>&1 &

我的问题是,如果不引入文件,是否可以做到这一点watch.sh?也就是说,是否可以直接在后台运行某个 while 循环?类似下面的方法可行吗?

while true; do ...; done &

这是一个 shell 脚本,但如果需要的话我可以转到 bash。

答案1

是的,类似 sh 的 shell(包括 bash/zsh)允许您以与常规命令相同的方式使用任何块(复合命令),并在必要时自动启动子 shell 进程 - 它可以用作管道的一部分,放入后台,重定向,甚至有自己的“退出代码”并且可以在条件下使用。

相关内容