Как выйти из всех вызывающих скриптов в bash? - PullRequest
2 голосов
/ 07 февраля 2010

Допустим, у меня есть следующие сценарии

a.sh

echo in a
if test 1 -ne 2; then
        echo oops
        exit 1
fi

b.sh

echo in b
./a.sh
echo in b 2

Когда я запускаю b.sh, я хочу, чтобы он завершился, если a.sh вышел. Как мне это сделать?

(Токовый выход

in b
in a
oops
in b 2

И это не то, что я хочу)

Спасибо, Ривка

Ответы [ 3 ]

5 голосов
/ 07 февраля 2010

проверить статус возврата команды, соответствующая переменная $?. в качестве альтернативы, вы можете замкнуть накоротко используя command || exit

1 голос
/ 07 февраля 2010
echo in b
./a.sh && echo in b 2

Это в основном проверяет, что первый скрипт не выходит из ненулевого значения. Если это так, и только тогда будет запущена вторая функция.

0 голосов
/ 07 февраля 2010

Я не думаю, что есть способ, которым вы можете сделать это без явной проверки статуса возврата подоболочки, например ::10000

# This will run b.sh, and if that exits with a non-zero status, we will also
# exit with that same status; otherwise, we continue.
./b.sh || echo $?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...