В сценариях Bash часто используется множество переменных. Некоторые из них имеют присвоенные значения, другие могут быть пустыми. Если вы вызываете команды с пустыми переменными, вы, скорее всего, увидите сообщение об ошибке. Поэтому рекомендуется проверить, пуста ли переменная или нет в сценарии оболочки, прежде чем работать с ней. В некоторых случаях также может потребоваться выполнение различных фрагментов кода в зависимости от того, установлена переменная или нет. В этой статье мы узнаем, как проверить, пуста или нет переменная в сценарии shell.
Как проверить, пуста или нет переменная в сценарии оболочки
Существует несколько способов проверить, пуста или нет переменная в сценарии оболочки. Мы рассмотрим некоторые из них.
1. Использование оператора -z
Вы можете легко проверить, пуста переменная или нет, добавив перед ней оператор -z, как показано ниже. Вот пример проверки того, установлена ли переменная $var или нет.
1 | -z "$var" |
Приведенный выше оператор проверяет, равна ли длина переменной $var нулю, и возвращает True, если она равна нулю, в противном случае возвращает False. Вы также можете использовать его в условиях if, как показано ниже.
1 2 3 4 5 6 | if [ -z "$var" ] then echo "\$var пуст" else echo "\$var НЕ пуст" fi |
Вы также можете комбинировать проверку оператора -z с операторами AND (&&) и OR (||) для прямого отображения того, существует ли переменная или нет.
1 2 | [ -z "$var" ] && echo "Empty" [ -z "$var" ] && echo "Пусто" || echo "Не пусто" |
В первом операторе выше результат условного выражения объединяется с оператором echo с помощью оператора AND. Поэтому, если результат равен true, только тогда строка будет выведена на экран. В противном случае ничего не отображается. Во втором операторе мы используем оператор OR для отображения строки "Не пусто", если условное выражение имеет значение False.
Вы также можете проверить, не установлена ли переменная, добавив оператор отрицания перед оператором -z.
1 2 3 4 5 6 | if [ ! -z "$var" ] then echo "\$var НЕ пуст" else echo "\$var пуста" fi |
Аналогично, вы можете использовать оператор отрицания в условных выражениях, как показано ниже.
1 2 | [ ! -z "$var" ] || echo "Empty" [ ! -z "$var" ] && echo "Не пустой" || echo "Пустой" |
2. Использование оператора test
Вы также можете использовать команду test с оператором -z, чтобы проверить, пуста переменная или нет. Вот пример.
1 2 3 4 5 6 | if test -z "$var" then echo "\$var пуста" else echo "\$var НЕ пуст" fi |
В приведенном выше операторе if-else, если переменная пуста, то команда test выдает значение True, в противном случае - False.
Вы можете использовать приведенные выше команды в терминале shell или в сценарии shell. Они прекрасно работают во всех оболочках во всех дистрибутивах Linux.
Заключение
В этой статье мы узнали, как легко определить, пуста переменная или нет.