Как проверить, определена ли переменная в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь основным техникам работы с переменными в командной строке Linux. Вы начнете с овладения способом отображения значений переменных с помощью команды echo, что является важным навыком для проверки параметров среды и другой сохраненной информации.

После этого вы узнаете, как проверить существование или пустоту переменных с использованием команды test с опцией -z, что необходимо для условной логики в скриптах. Наконец, вы научитесь выводить список всех в настоящее время определенных переменных среды с помощью команды env, которая дает полное представление о среде вашего оболочки (shell).


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") linux/UserandGroupManagementGroup -.-> linux/unset("Variable Unsetting") subgraph Lab Skills linux/echo -.-> lab-558776{{"Как проверить, определена ли переменная в Linux"}} linux/test -.-> lab-558776{{"Как проверить, определена ли переменная в Linux"}} linux/env -.-> lab-558776{{"Как проверить, определена ли переменная в Linux"}} linux/unset -.-> lab-558776{{"Как проверить, определена ли переменная в Linux"}} end

Отображение значения переменной с помощью команды echo

На этом этапе вы научитесь отображать значение переменной с использованием команды echo. Переменные в Linux используются для хранения информации, к которой можно получить доступ и которую можно использовать оболочкой (shell) и другими программами.

Общим типом переменных являются переменные среды (environment variables), которые хранят информацию о среде пользователя, например, имя текущего пользователя, домашнюю директорию и тип терминала.

Для отображения значения переменной используйте команду echo, за которой следует знак доллара ($) и имя переменной. Знак доллара сообщает оболочке, что вы хотите увидеть значение переменной, а не само имя переменной.

Попробуем отобразить значение переменной среды USER, которая хранит имя текущего вошедшего в систему пользователя.

Введите следующую команду в терминале и нажмите Enter:

echo $USER

Вы должны увидеть следующий вывод:

labex

Это показывает, что значение переменной USER равно labex, которое является вашим текущим именем пользователя в среде LabEx.

Теперь отобразим значение переменной среды HOME, которая хранит путь к вашей домашней директории.

Введите следующую команду и нажмите Enter:

echo $HOME

Вы должны увидеть следующий вывод:

/home/labex

Это подтверждает, что ваша домашняя директория - /home/labex.

Вы также можете отобразить значение переменной среды SHELL, которая показывает путь к оболочке (shell), которую вы в настоящее время используете.

Введите следующую команду и нажмите Enter:

echo $SHELL

Вы должны увидеть следующий вывод:

/usr/bin/zsh

Это указывает, что вы в настоящее время используете оболочку zsh.

Использование команды echo с знаком доллара - это фундаментальный способ доступа и отображения значений переменных в терминале Linux.

Проверка существования переменной с использованием команды test -z

На этом этапе вы научитесь проверять, является ли переменная пустой или не установлена, используя команду test с опцией -z. Это полезно при написании скриптов для принятия решений на основе того, имеет ли переменная какое-либо значение.

Команда test используется для оценки условных выражений. Опция -z проверяет, равна ли длина строки нулю. Если строка пуста (или переменная не установлена), то проверка дает истинный результат.

Проверим, установлена ли переменная с именем MY_VARIABLE. Сначала убедимся, что она не установлена.

Введите следующую команду и нажмите Enter:

unset MY_VARIABLE

Команда unset удаляет переменную. Теперь используем test -z для проверки, является ли MY_VARIABLE пустой. Мы объединим это с командой echo, чтобы увидеть результат проверки. Оператор && выполняет вторую команду только в том случае, если первая команда завершается успешно (возвращает истинное значение, что для команды test означает, что условие выполнено).

Введите следующую команду и нажмите Enter:

test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"

Поскольку мы только что удалили переменную MY_VARIABLE, условие test -z "$MY_VARIABLE" истинно (переменная пуста), поэтому команда echo будет выполнена.

Вы должны увидеть следующий вывод:

MY_VARIABLE is empty or not set

Теперь установим значение для MY_VARIABLE.

Введите следующую команду и нажмите Enter:

MY_VARIABLE="Hello"

Теперь запустим ту же команду test -z еще раз.

Введите следующую команду и нажмите Enter:

test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"

На этот раз переменная MY_VARIABLE имеет значение "Hello", поэтому она не пуста. Условие test -z "$MY_VARIABLE" ложно, и команда echo не будет выполнена.

На этот раз вы не должны увидеть вывода от команды echo.

Это демонстрирует, как можно использовать test -z для проверки, является ли переменная пустой или не установлена. Это фундаментальное понятие, используемое в скриптах оболочки (shell scripting) для условной логики.

Вывод списка всех переменных среды с помощью команды env

На этом этапе вы научитесь выводить список всех переменных среды, установленных в текущей сессии оболочки (shell), используя команду env.

Переменные среды (environment variables) являются важными компонентами для функционирования оболочки и программ. Они хранят конфигурационную информацию, пути к исполняемым файлам и другие настройки.

Команда env, запущенная без аргументов, выводит список всех переменных среды и их значений.

Введите следующую команду в терминале и нажмите Enter:

env

Вы увидите длинный список вывода, похожий на этот (точный вывод может отличаться в зависимости от вашей системы и конфигурации):

SHELL=/usr/bin/zsh
COLORTERM=truecolor
...
USER=labex
...
HOME=/home/labex
...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
...
PWD=/home/labex/project
...

Каждая строка в выводе представляет переменную среды в формате VARIABLE_NAME=value.

Вы можете увидеть некоторые из переменных, которые мы рассматривали на предыдущих этапах, такие как USER, HOME и SHELL. Также вы увидите множество других переменных, например, PATH, которая сообщает оболочке, где искать исполняемые команды, и PWD, которая показывает текущую рабочую директорию.

Команда env - это простой, но мощный инструмент для проверки среды оболочки. Она часто используется для отладки или для понимания того, как программа может вести себя в зависимости от ее окружения.

Поскольку вывод может быть довольно длинным, вы можете направить вывод команды env в постраничный просмотрщик, например, less, чтобы просматривать его по одной странице за раз.

Введите следующую команду и нажмите Enter:

env | less

Используйте стрелки на клавиатуре для прокрутки вверх и вниз, и нажмите q для выхода из less.

На этом этапе вы узнали, как выводить список всех переменных среды. В следующих этапах вы узнаете больше о том, как эти переменные используются и как можно взаимодействовать с ними.

Резюме

В этом практическом занятии (lab) вы изучили основные методы работы с переменными в Linux. Вы практиковались в использовании команды echo с символом доллара ($) для вывода значений переменных среды, таких как USER, HOME и SHELL, и поняли, как эта команда извлекает сохраненную информацию.

Кроме того, вы изучили, как проверить существование или пустоту переменной с помощью команды test с опцией -z, что является важным навыком для условной логики в скриптах. Наконец, вы узнали, как вывести список всех в настоящее время определенных переменных среды с помощью команды env, что позволяет получить полное представление о среде оболочки.