Я относительно новый с bash (программирование в целом) и сам по себе обучен по большей части, но у меня есть цикл while, который должен только выйти, если ВСЕ условия выполнены.bash while loop break too early
while [[ "$var1" != "$var1_tgt" ]] && [[ "var2" != "$var2_tgt" ]] && [[ "$var3" != "$var3_tgt" ]] && [[ "$var4" != "$var4_tgt" ]]; do LOOP...; done
Проблема в том, что у меня, кажется, есть (я думаю), находится в оценке цикла. Когда я запускаю скрипт, он прерывается, если выполняется только одно из условий, но я хочу, чтобы цикл прерывался только тогда, когда были выполнены ВСЕ условия. То есть, когда var # равно var # _tgt для ВСЕХ var, только тогда цикл должен прерываться. Насколько я знаю, использование «& &» должно означать, что все условия должны быть выполнены до того, как цикл выйдет, но тот факт, что он не работает, означает, что я чего-то не хватает. Я ценю любую помощь в этом.
Не могли бы вы помочь нам понять, что делает этот сценарий? Например, вы предположительно начинаете с '$ var2_tgt' соответствия' $ var' и '$ var2_tgt', соответствующих' $ var2', тогда по мере прохождения по циклу одна или несколько переменных будут изменены, чтобы они больше не соответствовали цель. И если они не совпадают, вы выходите из цикла. У меня есть это право? Если да, можете ли вы предоставить нам пример кода, который устанавливает переменные, чтобы мы могли проверить, как все работает? – ghoti