【发布时间】:2019-03-26 15:02:42
【问题描述】:
我正在考虑如何在以下示例中解决此功能:
#!/bin/bash
. script.sh &
while [ "$VAR" != "OK" ];
do
echo -e "Waiting..."
sleep 1
done
脚本.sh
#!/bin/bash
export VAR=OK
由于 while 循环在其父 shell 的子 shell 中运行,它永远不会结束,因为永远不会得到源代码 script.sh export VAR=OK。
知道如何将 VAR 值传递给 while 循环吗?
注意:我需要在后台运行 script.sh。
谢谢!
【问题讨论】:
-
我建议让父脚本在每次循环中检查文件是否存在,如果存在则读取内容。然后它可以删除该文件。让子进程写入文件。
-
您是在等待孩子完成,还是等待孩子为您提供一些数据? while 循环在等待时会做其他事情吗?
标签: bash shell loops variables