Я хотел бы найти эквивалент
cmd 1 && cmd 2 && ... && cmd 20
но с командами, выраженными внутри for
цикла, как
for i in {1..20}
do
cmd $i
done
Что бы вы предложили изменить во втором выражении, чтобы найти эквивалент первого?
Эквивалентом вашей исходной последовательности будет:
for i in {1..20}
do
cmd $i || break
done
Разница с ответом Амита заключается в том, что скрипт не будет завершен, т.е. будет выполнять потенциальные команды, которые могут следовать последовательности / циклу. Обратите внимание, что возвращаемое состояние всего цикла всегда будет истинным с моим предложением, это может быть исправлено, если это уместно в вашем случае.
cmd && cmd
Если вам нужно грязное однострочное решение, вы можете создать команду и отправить ее в bash.
источник
Вы можете выйти из цикла, если один из них потерпел неудачу
источник
break
Там не законно? Я почти уверен, чтоif
заявление не вмешивается ..Вот как я выполняю свои задачи в терминале, не используя
&&
Похоже, вы должны поместить эту команду в сценарий
Оба дают одинаковый вывод для меня
источник