В одном из моих лабораторных занятий была команда для проверки.
test -z $LOGNAME || echo Logname is not defined
когда я выполняю эту команду, выводится "Имя логина не определено". Справочная страница для теста говорит
> -z STRING
> the length of STRING is zero
когда я повторяю $ LOGNAME, он печатает мое имя пользователя. Таким образом, есть значение для $ LOGNAME. В первой приведенной выше команде, поскольку правая часть команды выполнена, это означает, что левая часть вернула false. Почему он возвращает false, когда $ LOGNAME имеет значение?