![Bash - 3 个并行的无限 while 循环](https://linux22.com/image/183277/Bash%20-%203%20%E4%B8%AA%E5%B9%B6%E8%A1%8C%E7%9A%84%E6%97%A0%E9%99%90%20while%20%E5%BE%AA%E7%8E%AF.png)
我有 3 个发送一些指标的脚本:
script1.sh
执行时间约 1 秒script2.sh
执行大约需要 10 秒script3.sh
执行大约需要 2 分钟
我希望尽快每 30 秒发送一次指标script1.sh
(script2.sh
该script3.sh
脚本一次只能运行一个实例)。换句话说,并行化 3 个while
循环:
#!/bin/sh
while true; do
./script1.sh
sleep 30
done
while true; do
./script2.sh
sleep 20
done
while true; do
./script3.sh
done
我该如何实现这一目标?
答案1
未经测试,但尝试在单独的后台子 shell 中运行每个循环
( while true; do ./script1.sh; sleep 30; done ) &
( while true; do ./script2.sh; sleep 20; done ) &
( while true; do ./script3.sh; done ) &
wait