Что означает $ {VARIABLE + x} в bash?

Я встречал код, который использует этот синтаксис в условии if:

if [ ! -z ${VARIABLE+x} ]; then
    some commands here
fi

Проверяет ли он непустую переменную? Если да, то чем он отличается от ! -z "$VARIABLE"?


person corvus_192    schedule 22.02.2018    source источник
comment
stackoverflow.com/a/13864829/214577   -  person Oldskool    schedule 22.02.2018
comment
@Oldskool Не могли бы вы опубликовать это в качестве ответа?   -  person corvus_192    schedule 22.02.2018
comment
Я бы сказал, поскольку это будет плагиатом :-) Я просто говорю, что этот ответ в значительной степени отвечает на ваш вопрос.   -  person Oldskool    schedule 22.02.2018


Ответы (1)


См. РАСШИРЕНИЕ ПАРАМЕТРОВ в man bash:

${parameter:+word}

Используйте альтернативное значение. Если parameter имеет значение null или не установлено, ничего не заменяется, в противном случае подставляется расширение word.

И несколько абзацев выше в том же разделе:

Отсутствие двоеточия приводит к тестированию только для параметра, который не установлен.

person choroba    schedule 22.02.2018