[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