Имеется несколько системных переменных, наличие которых необходимо проверить перед выполнением определённого скрипта.
Предположим, эти переменные — $sysvar1, $sysvar2, $sysvar3 и $sysvar3.
Создадим массив, в котором перечислим переменные для проверки:
variables=( [1]=$sysvar1 [2]=$sysvar2 [3]=$sysvar3 [4]=$sysvar3 )
И используем цикл for для проверки значения каждого элемента:
for var in "${variables[@]}"; do [[ "$var" ]] && echo "$var" || echo "Empty var!"; done
Теперь оформим всё это в один скрипт:
$ cat bin/assertions.sh
#!/usr/bin/env bash
variables=( [1]=$sysvar1 [2]=$sysvar2 [3]=$sysvar3 [4]=$sysvar3 )
checkvars () {
local var
for var in "$@"
do
[[ "$var" ]] && echo "Var exist: $var;"
|| echo "Empty var!"
done
}
checkvars "${variables[@]}"
Проверим:
$ ./bin/assertions.sh Empty var! Empty var! Empty var! Empty var!
Создадим одну переменную:
$ export sysvar1=sysvar1
$ echo $sysvar1 sysvar1
$ ./bin/assertions.sh Var exist: sysvar1; Empty var! Empty var! Empty var!
$ export sysvar2=sysvar2
$ ./bin/assertions.sh Var exist: sysvar1; Var exist: sysvar2; Empty var! Empty var!