Вы можете поставить set -e
в верхней части сценария:
-e errexit If not interactive, exit immediately if any
untested command fails. The exit status of a com‐
mand is considered to be explicitly tested if the
command is used to control an if, elif, while, or
until; or if the command is the left hand operand
of an “&&” or “||” operator.
Это будет только работать, если один из ваших команд выхода с кодом выхода ненулевых на провал. Хорошие программы должны всегда выходить с 0 только на успех, а если ваш нет, вы, вероятно, захотите это исправить.
Я не совсем уверен, что вы ожидаете, чтобы это сделать:
/usr/bin/test.sh /usr/1/sample.sh /usr/2/temp.py
Так как это будет работать одна команда (/usr/bin/test.sh
) с двумя аргументами, вы, вероятно, хотите, чтобы положить их на отдельных строках.
Все зависит от состояния вывода и/или выхода из сценариев, которые вызывает ваш сценарий. Некоторые программы выводят ошибки, но продолжают работать, некоторые программы возвращают статус выхода 0 для успеха, а другие возвращают ненулевой успех. Некоторые программы выводят стандартный вывод на std-ошибку. –
Также ваш код, который вызывает несколько сценариев, на самом деле вызывает один скрипт и передает остальные два в качестве аргументов. Я бы искал Google для руководства по написанию сценариев bash (есть некоторые действительно хорошие, легко найти руководства) и читать их. –