Последовательность выполнения в цикле с условием if

#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 
 

подождите