Я использую &&
для объединения команд ( выполняет команду, только если предыдущая команда вернула ok (0) код ).
Но мне нужно добавить это условие ко многим командам (более 8), и тогда мой код выглядит очень некрасиво (слишком длинно для одной уникальной строки):
command 1 && command 2 && command 3 && command 4 && command 5 && command 6 && command 7 && command 8...
Есть ли способ использовать &&
с более чем одной строкой?
command 1
&& command 2
&& command 3
&& command 4
&& command 5
&& command 6
&& command 7
&& command 8
...
ОТВЕТ
По предложению @Kamil Cuk, использование && в конце каждой строки может решить мою проблему. Но будут пропущены только строки, следующие за &&. Я предпочитаю пропустить все остальное.
Но я согласен - это предложение решит проблему. Мы можем использовать && в конце каждой строки, чтобы применить условие к многострочному. Спасибо.
Я протестировал предложение от @iBug. Я заметил ту же проблему, остальные инструкции (из списка) все еще обрабатываются. Но еще хуже результат с использованием \ неверен: он выполняет первую команду, затем печатает имя команды 2 ...
echo "A" \
echo "B" \
echo "YES"
--> A echo B echo YES
Наконец, решение, которое я использовал, найдено @Biffen: set -e
-e Выйти немедленно, если простая команда выходит с ненулевым статусом, если только
команда, которая терпит неудачу, является частью цикла по или до, часть
оператор if, часть && или || список, или если команда возвращает статус
инвертируется с помощью! -o errexit
Спасибо всем за быструю помощь.
С уважением,
Nicolas