2014-11-25 3 views
-2

Я хочу запустить несколько команд в цикле bash, как я могу добиться этого правильно? Вы можете увидеть, что я попробовал ниже, но после выполнения первой команды он вышел из цикла. Каков правильный способ сделать это? Заранее спасибо за вашу помощь.Несколько команд в петле bash

for sample in 2 3 27 28 32 
do 
command1 
command2 
command3 
done 
+5

Вам нужно предоставить более подробную информацию о действительных запускаемых командах и полный скрипт, который вы пытаетесь выполнить. Ваш пример кода правильный, то есть способ запуска команд в цикле; но он может быть удален по нескольким причинам: 'set -e', команда' exec', 'break' и т. д. – pgl

+0

Работает так, как ожидается здесь. http://pastebin.com/0BZVuqp7 – tripleee

+2

Пожалуйста, покажите ** фактический код **, так как работает псевдокод. – l0b0

ответ

1

Поскольку псевдокод в вопросе works, здесь целый ряд возможных проблем на основе окружающей среды и содержимое command1:

  • Скрипт работает с errexit набором, и код выхода command1 не равен нулю. Чтобы проверить это, попробуйте echo "$-" - если там есть e, установлен errexit.
  • Корпус FUBAR. Может ли кто-нибудь еще изменить оболочку?
  • Там сумасшедший alias где-то, делая command1 запустите что-то другое, чем вы думаете, что оно работает.
  • command1 пробегает break, exit или continue (или return, если это функция).
Смежные вопросы