如何同时运行两个循环

时间:2016-12-29 18:54:13

标签: bash loops

我想知道如何同时运行太多循环。这有点像我的另一个问题How to exit a Subshell。我试图让两个循环同时运行,让他们能够共享变量。我尝试使用子shell(显然失败了),尝试背景化第一个循环并运行第二个循环,但是没有用。我还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

实现这一目标的一种方法是将循环放在不同的脚本中并独立调用它们,例如:

nohup /folder/myLoop1 > /dev/null 2>&1 &
nohup /folder/myLoop2 > /dev/null 2>&1 &

至于共享变量,一种方法是将变量存储在临时文件中,然后所有脚本都可以访问该文件:

echo "$myVar" > /tmp/loopVarHolder
myVar="$(cat /tmp/loopVarHolder)"

最后,当myLoop2完成时,你可以通过在{{1}末尾添加以下(或类似的)来杀死(如果你需要/想要)一个循环(比如说)myLoop1 }}:

myloop1

注意:如果您不使用{{1}等重定向,则在终端上使用killall myLoop2 > /dev/null 2>&1 (而非在脚本上)可以保留提示并在某处创建文件nohup调用它时。