Використовувати &&оператор,
cmd1 && cmd2 && cmd3
У оболонках &&та ||операторах моделюються після оптимізованої реалізації логічних операторів у C. &&означає оператор AND і ||означає OR. Unix тісно пов'язаний з C, а в C другий операнд логічних операторів не оцінюється, якщо результат вже відомий з першого операнда. Напр. "false && x"Для falseбудь-якого x, тому не потрібно оцінювати x(особливо якщо xце виклик функції); аналогічно для "true || x". Це також називається семантикою короткого замикання .
І в Unix традиційно трактувати повернені значення команд як значення "істинного завершення" істинні значення: код виходу 0 означає true(успіх), ненульовий засіб false(відмова). Отже, коли cmd1 && cmd2повертається перша команда, що повертається "false"(ненульовий статус виходу, що вказує на збій), відомий статус складної команди: відмова. Таким чином, загальне тлумачення cmd1 && cmd2 може бути: "виконайте cmd1, а потім, якщо воно не вийшло з ладу cmd2". Що саме ви хочете в своєму запитанні.
Аналогічно з АБО: cmd1 || cmd2може трактуватися як "виконати cmd1, АБО якщо це не вдалося cmd2".
Підказка: для довших ланцюгів &&розглянути питання про те , щоб ввести set -eсвій сценарій. Це в основному змінює крапку з комою ;на &&кілька спеціальних випадків.