Shell script переменная не пустая (опция -z) Как убедиться, что переменная не пуста с параметром -z? errorstatus="notnull" if [ !-z $errorstatus ] then echo "string is not null" fi Он возвращает ошибку: ./test: line 2: [: !-z: unary operator expected Ответ 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
Ответ 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