Имеется несколько системных переменных, наличие которых необходимо проверить перед выполнением определённого скрипта.
Предположим, эти переменные – $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!