Переменная может быть определенной или неопределенной. Если какая-либо переменная не объявлена или объявлена, но не присвоено значение, тогда переменная не установленаили не определена. Когда любая переменная объявляется и ей присваивается значение, тогда переменная устанавливается. Во многих случаях для целей программирования требуется знать, установлена ли конкретная переменная. Одна из важных целей проверки того, установлена ли переменная или нет, – это проверка данных. В Bash нет встроенной функции, как в других стандартных языках программирования, для проверки того, установлена ли переменная. Но в bash есть функция для выполнения этой задачи. Как вы можете проверить, установлена ли переменная в bash, показано в этой статье.
Синтаксис:
[[ -v variable ]] Or [[ -z variable ]]
Параметр ‘-v’ или ‘-z’ используется для проверки того, установлена или не установлена переменная. Вышеупомянутое логическое выражение вернет true, если переменная установлена, и false, если переменная не установлена или пуста.
${variable+string}
Замена параметра – это еще один способ проверить, установлена ли переменная или нет. Если переменная установлена, то значение строки вернется, в противном случае вернется null.
Создайте файл bash с именем check_var1.sh с помощью следующего скрипта. Здесь первое условие `if` вернет истину и напечатает «Переменная ‘num’ не установлена». В следующем операторе 20 присваивается переменной $Num. Второе условие `if` вернет false, и будет напечатано «Num установлено и значение Num=20».
check_var1.sh
#!/bin/bash # Проверить, установлена ли переменная if [ -z ${Num} ]; then echo "Переменная 'Num' не установлена" else echo "Переменная 'Num' установлена" fi # Назначить значение Num=20 # Проверить, установлена ли переменная после присвоения значения if [ -z ${Num} ]; then echo "Переменная 'Num' не установлена" else echo "'Num установлено и значение Num=$Num " fi
Запускаем скрипт.
$ bash checkvar1.sh
Создайте файл bash с именем «check_var2.sh» и добавьте следующий сценарий. Здесь переменной присваивается строковое значение, $str перед проверкой, установлена или не установлена переменная. Условие ‘if’ вернет true, и будет напечатано сообщение «переменная ‘str’ установлена и значение Hello».
check_var2.sh
#!/bin/bash # Установить переменную str = ”Hello” # Назначить значение “World” для checkval, если переменная str установлена checkval = $ {str + “World”} # Проверить, установлена ли переменная, if [ $checkval -eq “World” ]; then echo "переменная 'str' установлена и значение равно $str" else echo "переменная 'str' не установлена" fi
Запускаем скрипт:
$ bash checkvar2.sh
Создайте файл bash с именем «check_var3.sh» и добавьте следующий сценарий. Сценарий сохранит первый аргумент командной строки в переменной $argv, которая проверяется в следующем операторе. Вывод будет «Первый аргумент является пустым», если аргумент не передан, иначе будет напечатано значение первого аргумента.
check_var3.sh
#!/bin/sh # Прочитать значение первого аргумента командной строки argv="$1" # Проверить, указано ли значение первого аргумента [ -v "$argv" ] && echo "Первый аргумент является пустым" || echo "Значение первого аргумента равно $argv"
Запустить сценарий без аргументов.
$ bash checkvar3.sh
Запустите сценарий с аргументом.
$ bash checkvar3.sh test
В этой статье на различных примерах показаны различные способы проверки того, что переменная установлена, не установлена или пуста. Надеюсь, эта статья поможет пользователям узнать способы тестирования любой переменной bash.