-z
для zero
или zero-length
. Пустую строку часто называют пустой строкой. -n
является непустым. В оболочках POSIX и с POSIX [
(иначе test
) команда, все те эквивалентны:
[ -z "$var" ] && echo empty
[ ! -n "$var" ] && echo empty
[ ! "$var" ] && echo empty
! [ "$var" ] && echo empty
[ "$var" = "" ] && echo empty
[ "${#var}" -eq 0 ] && echo empty
test -z "$var" && echo empty
[ "x$var" = x ] && echo empty
case $var in
"") echo empty
esac
Но обратите внимание, что существуют (старые) реализации [
где только 8 работ надежно для некоторых значений $var
как !
или =
. 9
работы, надежные в каждой подобной Границе оболочке.
Я обновил свою систему, скачав исходный код 4.3 bash и патчи с ftp.gnu.org/gnu/bash и скомпилировав его, чтобы заменить существующий код. Она работает, теперь ждет новых патчей.