ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как проверить, что переменная установлена ​​или пуста в bash

Bash Heredoc

Переменная может быть определенной или неопределенной. Если какая-либо переменная не объявлена или объявлена, но не присвоено значение, тогда переменная не установлена​или не определена. Когда любая переменная объявляется и ей присваивается значение, тогда переменная устанавливается. Во многих случаях для целей программирования требуется знать, установлена ли конкретная переменная. Одна из важных целей проверки того, установлена ли переменная или нет, — это проверка данных. В Bash нет встроенной функции, как в других стандартных языках программирования, для проверки того, установлена ли переменная. Но в bash есть функция для выполнения этой задачи. Как вы можете проверить, установлена ли переменная в bash, показано в этой статье.

 

Синтаксис:

[[ -v variable ]] Or [[ -z variable ]]

 

Параметр ‘-v’ или ‘-z’ используется для проверки того, установлена или не установлена переменная. Вышеупомянутое логическое выражение вернет true, если переменная установлена, и false, если переменная не установлена или пуста.

${variable+string}

 

Замена параметра — это еще один способ проверить, установлена ли переменная или нет. Если переменная установлена, то значение строки вернется, в противном случае вернется null.

 

Пример-1: проверьте, установлена или не установлена переменная, используя параметр -z

Создайте файл 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

Пример-2: проверьте, установлена или не установлена переменная, используя замену параметра

Создайте файл 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

Пример-3: Проверить, что переменная пуста или нет

Создайте файл 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.

Exit mobile version