#loops #if-statement #sequence #wait
#циклы #оператор if #последовательность #подождите
Вопрос:
В моем цикле ниже инструкции выполняются не одна за другой, а не по порядку. Некоторые не ждут, пока предыдущие не будут завершены для выполнения. Например, все отображения с echo выполняются заранее, когда он зацикливается. Я пытался поставить amp; в конце каждой инструкции, это не сработало
Мой цикл содержит условие if
Спасибо за вашу помощь.
#!/bin/bash
INPUT=Mnt.csv
OLDIFS=$IFS
IFS=','
[ ! -f $INPUT ] amp;amp; { 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" amp; >> $(date %Y%m%d).log amp;
Ответ №1:
Это работает путем добавления ожидания следующим образом
#!/bin/bash
INPUT=Mnt.csv
OLDIFS=$IFS
IFS=','
[ ! -f $INPUT ] amp;amp; { 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
подождите