Приветствую всех!
Всплыло непонятное поведение команды test (builtins из sh и bash и /bin/test),
подскажите, какой в этом смысл?
Из man test:
string True if string is not the null string.
-n string True if the length of string is nonzero.
-z string True if the length of string is zero.
Проверка строки без опций проходит ожидаемо:
$ if [ ]; then echo yes; else echo no; fi
no
$ if [ "" ]; then echo yes; else echo no; fi
no
Но -n, вопреки ожиданиям, ведёт себя не аналогично:
$ if [ -n ]; then echo yes; else echo no; fi
yes
$ if [ -n "" ]; then echo yes; else echo no; fi
no
Первая мысль: -n (а значит и -z тоже) считает, что нулевая длина может быть
только у не null string. Но -z опровергает это:
$ if [ -z ]; then echo yes; else echo no; fi
yes
$ if [ -z "" ]; then echo yes; else echo no; fi
yes
#какжетак?
_______________________________________________
freebsd mailing list
[email protected]
http://mailman.uafug.org.ua/mailman/listinfo/freebsd