Как выйти из всех призывных сценариев в Bash?

StackOverflow https://stackoverflow.com/questions/2216200

  •  19-09-2019
  •  | 
  •  

Вопрос

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

пепел

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

Б.С.

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

При запуске B.SH я хочу, чтобы он вышел, если выходит из A.SH. Как мне это сделать?

(Текущий выход

in b
in a
oops
in b 2

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

# 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 $?
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top