Ответ 1
Вы можете использовать -z
для проверки того, что переменная не установлена или пуста:
if [[ -z $DB || -z $HOST || -z $DATE ]]; then
echo 'one or more variables are undefined'
exit 1
fi
echo "You are good to go"
Как вы использовали bash tag, я использовал расширенный тест [[
, что означает, что мне не нужно использовать кавычки вокруг моих переменных. Я предполагаю, что для продолжения нужно указать все три переменные. exit
в ветки if
означает, что else
является излишним.
Стандартный способ сделать это в любой POSIX-совместимой оболочке будет следующим:
if [ -z "$DB" ] || [ -z "$HOST" ] || [ -z "$DATE" ]; then
echo 'one or more variables are undefined'
exit 1
fi
Важные отличия здесь в том, что каждая проверка переменных проходит внутри отдельного теста и что вокруг каждого расширения параметра используются двойные кавычки.