На комментарий похоже, что OP может потребоваться вызвать command 1
до 2 раз для данного $i
значения, но хочет ввести command 1
только один раз в скрипте.
Siddhartha's Предложение использовать функцию, вероятно, достаточно хорошо, но в зависимости от фактического command 1
(OP упоминает, что он `` довольно большой '') я собираюсь сыграть в адвоката дьявола и предположить, что могут возникнуть дополнительные проблемы с передачей некоторых аргументов функции ( например, необходимость экранировать некоторые символы ... ??).
Общая идея состоит в том, чтобы иметь внутренний l oop, который может выполняться не более 2 раз, с logi c в l oop, что позволит «раньше» выйти (например, после всего лишь одного прохода через l oop).
Поскольку мы используем псевдокод, я буду использовать то же самое ...
for ( i=3; i<5; i++ )
do
pass=1 # reset internal loop counter
while ( pass -le 2 )
do
echo "i" >> mytext.txt # command 1
if ( pass -eq 1 ) # after first 'command 1' execution
&& ( value of 'i' is in mytext.txt ) # command 2
then
break # break out of inner loop; alternatively ...
# pass=10 # ensure pass >= 2 to force loop to exit on this pass
fi
pass=pass+1 # on 1st pass set pass=2 => allows another pass through loop
# on 2nd pass set pass=3 => will force loop to exit
done
done