tgoop.com/devopslib/39
Create:
Last Update:
Last Update:
🧠 Зачем set -e в bash-скриптах — и почему он может вас подставить
Многие пишут в баш-скриптах в начале:
#!/bin/bash
set -e
Типа: пусть скрипт падает при первой ошибке. Звучит здраво. Но есть нюанс.
Вот такой код:
set -e
mkdir /tmp/test || true
echo "Продолжаем..."
Что произойдёт, если
/tmp/test уже существует?👉
mkdir вернёт ошибку, но || true спасёт нас. Скрипт пойдёт дальше.А теперь так:
set -e
if some_command; then
echo "OK"
fi
Если
some_command завершится с ненулевым кодом — всё, скрипт упадёт до входа в if.🧨 И таких подводных камней с
set -e хватает.💡 Решение — аккуратнее: либо продуманные конструкции вроде
if, ||, &&, либо использовать trap и обрабатывать ошибки осознанно.Подпишись 👉 @devopslib
BY Библиотека девопса | DevOps, SRE, Sysadmin
Share with your friend now:
tgoop.com/devopslib/39
