Подтвердить что ты не робот

Shell script переменная не пустая (опция -z)

Как убедиться, что переменная не пуста с параметром -z?

errorstatus="notnull"
if [ !-z $errorstatus ]
then
   echo "string is not null"
fi

Он возвращает ошибку:

./test: line 2: [: !-z: unary operator expected
4b9b3361

Ответ 1

Конечно, да. После замены переменной он читает [ !-z ], что не является допустимой командой [. Используйте двойные кавычки или [[.

if [ ! -z "$errorstatus" ]

if [[ ! -z $errorstatus ]]

Ответ 2

Почему вы используете -z? Чтобы проверить, является ли строка непустой, вы обычно используете -n:

if test -n "$errorstatus"; then
  echo errorstatus is not empty
fi

Ответ 3

Я думаю, что это синтаксис, который вы ищете:

if [ -z != $errorstatus ] 
then
commands
else
commands
fi