Вы можете проверить состояние кода выхода последней выполненной команды, проверив переменную $?
. Код выхода 0 является типичным признаком успешного выполнения команды.
Коды выхода можно установить с помощью exit
с последующим номером кода в скрипте.
Вот предыдущий вопрос , касающийся использования $?
с более подробной информацией, но для простой проверки этого значения попробуйте:
echo "test";echo $?
# Example
echo 'copying the common packages'; ./build/build_sdist.sh;
if [ $? -ne 0 ]; then
echo "The last command exited with a non-zero code"
fi
[ $? -ne 0 ]
Проверяет, не равен ли код ошибки последней выполненной команды 0. Это также полезно, чтобы обеспечить сбор любых отрицательных кодов ошибок, таких как -1.
Предупреждение вышеупомянутого подхода заключается в том, что мы проверили только по последней выполненной команде , а не по ... multiple operations....
, которую вы упомянули, поэтому мы могли пропустить ошибку, сгенерированную командой, выполненной до pip install
.
В зависимости от ситуации вы можете set -e
в последующем сценарии, который инструктирует оболочку для выхода из сценария при первом запуске команды с ненулевым статусом.
Другой вариант - выполнить операцию, аналогичную приведенной в примере ./build/build_sdist.sh
, для проверки кода выхода каждой команды. Это даст вам максимальный контроль над тем, когда и как скрипт завершится, и позволит скрипту установить свой собственный код exit
.