Linux:红帽企业 Linux 服务器 6.5 版(圣地亚哥)
BASH:GNU bash,版本 4.1.2(1)-release (x86_64-redhat-linux-gnu)
我刚刚配置的 VM 之一仍在等待 DNS 更新它的节点条目,并且一个节点有一个安装在/project_support
文件夹中的 NAS。/project_support
访问文件夹大约需要 5-10 分钟,我知道是的。
对于我的自动化不会因为这个问题而中断并且我不想添加一个常量sleep NNN
,我使用until
了循环,以便在安装挂载并且/project_support
文件夹可用之前,我想睡 5 秒钟并检查文件夹是否存在,然后再继续在自动化脚本/逻辑中。
当对给定文件夹的命令成功(即退出状态)时,为什么第一个until
循环仍在继续并且不退出条件检查?cd
0
第二个直到按预期工作。
对于第二个直到循环,即使我创建了文件夹(从第二个终端,直到循环正在运行),它仍然不会中断直到循环。
[root@nukaserver01 ~]# cd /project_support; echo $?
0
[root@nukaserver01 project_support]# pwd
/project_support
[root@nukaserver01 project_support]# until [ `cd /project_support` ]; do echo '-- sleep 5'; sleep 5; done
-- sleep 5
-- sleep 5
-- sleep 5
^C
[root@nukaserver01 project_support]# until [ `cd /project_support-I-DONT-EXIST-AT-ALL` ]; do echo '-- sleep 5'; sleep 5; done
-bash: cd: /project_support-I-DONT-EXIST-AT-ALL: No such file or directory
-- sleep 5
-bash: cd: /project_support-I-DONT-EXIST-AT-ALL: No such file or directory
-- sleep 5
^C
[root@nukaserver01 project_support]#
为什么当我这样做时这个问题得到解决:?
直到 [ `cd /project_support && pwd` ]; 做 ...; ...; 完毕