Проверить непустую строку в оболочке (вместо ! -z)

Проблема была решена при запуске firewalldв гостевой операционной системе, и теперь все работает!!

Спасибо

-5
05.03.2020, 12:24
1 ответ

Вам нужен -nтест ("истинно, если длина заданной строки не -равна нулю" ), что противоположно -zтесту ("истинно, если длина данной строки равна нулю" ).

Тест -pявляется чем-то совершенно другим ("истинно, если данный файл существует и является именованным каналом" ).

Эта информация доступна вам в интерактивной bashоболочке при вводе

help test

, который даст вам документацию для встроенной -в testутилиты (, которая [является еще одним вариантом; см. help [, и в котором [[используются те же тесты, что и; см.help [[). Вы также можете ознакомиться с руководством bashпо вашей системе (man bash), где это описано в разделе «УСЛОВНЫЕ ВЫРАЖЕНИЯ ».

Таким образом, ваш код будет одним из

if [[ -n $var ]]; then...; fi
if [ -n "$var" ]; then...; fi
if test -n "$var"; then...; fi

Сказав это,Я не вижу ничего плохого в

if [[ ! -z $var ]]; then...; fi

если вы, например, хотите убедиться, что значение пустое, и хотите вывести сообщение об ошибке, если оно не пустое. Затем код будет служить для документирования вашего намерения :«Если это не пусто , что-то не так». Это дело вкуса.

2
28.04.2021, 23:21

Теги

Похожие вопросы