-z
można użyć do sprawdzenia, czy zmienna jest ustawiona lub puste:
if [[ -z $DB || -z $HOST || -z $DATE ]]; then
echo 'one or more variables are undefined'
exit 1
fi
echo "You are good to go"
Jak użyłeś tagu bash, Użyłem rozszerzonego testu [[
, co oznacza, że nie potrzebuję używać cudzysłowów wokół moich zmiennych. Zakładam, że musisz zdefiniować wszystkie trzy zmienne, aby kontynuować. Numer exit
w gałęzi if
oznacza, że numer else
jest zbędny.
Standardowy sposób zrobić to w każdej muszli POSIX zgodny byłoby tak:
if [ -z "$DB" ] || [ -z "$HOST" ] || [ -z "$DATE" ]; then
echo 'one or more variables are undefined'
exit 1
fi
Istotne różnice tutaj jest to, że każdy sprawdzian zmienna idzie wewnątrz oddzielnego testu i że cudzysłowy są wykorzystywane wokół siebie rozszerzenie parametrów.
dla zmiennej kontrolnej ma wartość lub nie [-z $ a -a -z $ b -a -z $ c] && echo "nie ma wartości" || echo "ok good to go!" – powershell