如何解决if 条件循环中的执行顺序
在我下面的循环中,指令不是一个接一个地执行,而是乱序执行。 有的不等到前面的执行完毕才执行。 例如,所有带有回声的显示都是在循环时提前完成的。 我试图将 & 放在每条指令的末尾,但它不起作用
我的循环包含 if 条件
感谢您的帮助。
#!/bin/bash
INPUT=Mnt.csv
OLDIFS=$IFS
IFS=','
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read dom alias port ver
do
ssh -n $alias "
echo =======================================================
echo $alias
echo =======================================================
if [ ${ver} = "v3" ]
then
instruction 1
........
........
........
instruction n
else
instruction A
........
........
........
instruction X
fi
exit" & >> $(date +%Y%m%d).log &
解决方法
通过添加这样的等待来工作
#!/bin/bash
INPUT=Mnt.csv
OLDIFS=$IFS
IFS=','
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read dom alias port ver
do
ssh -n $alias "
echo =======================================================
echo $alias
echo =======================================================
if [ ${ver} = "v3" ]
then
instruction 1
........
........
........
instruction n
else
instruction A
........
........
........
instruction X
fi
wait
exit" >> $(date +%Y%m%d).log
等待
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。