[sisyphus] Забавный результат выполнения test -f $file
Epiphanov Sergei
=?iso-8859-1?q?serpiph_=CE=C1_nikiet=2Eru?=
Ср Мар 2 13:31:34 MSK 2005
В сообщении от 2 Март 2005 12:54 Yura Zotov написал:
> Это правильно, что bash работает вот так?
>
> $ file=; if test -f $file; then echo "x$file"; fi
> x
>
> Если правильно, то почему?
Выдержка из man bash:
...
Команды test и [ проверяют условные выражения с помощью
набора правил, основанного на количестве аргументов.
0 аргументов
Выражение ложно.
1 аргумент
Выражение истинно только если аргумент - не
пустой.
...
Ваша команда преобразуется к виду:
if test -f; then echo "x"; fi
У Вас один аргумент, он не пустой, поэтому правильно.
--
С уважением, Епифанов Сергей
Подробная информация о списке рассылки Sisyphus