Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Alexandr S. Agranovsky               2:5020/400     31 May 2003  10:26:54
 To : Kirill Frolov
 Subject : Re: [[b]a]sh, '$@' без кавычек --  признак ошибки
 -------------------------------------------------------------------------------- 
 
 
   Hi, Kirill Frolov
 
 KF>    Hасколько я прав в том, что использование переменной '$@' в качестве
 KF> аргумента вызываемой программы _без_ _двойных_ _кавычек_ -- признак
 KF> серьёзной ошибки?  Разбиваются же аргументы по словам.
 
 Да, признак.
 
 KF>    Меня сильно смущает то, что в /usr/bin каждый n-ый скрипт допускает
 KF> разбиение аргументов командной строки по словам. В результате имена файлов
 KF> или опции с пробелами они не понимают, да и много бед натворить могут из-за
 KF> случайной ошибки. :-( :-/
 
 Ты прав.
 
 KF>   Стал смотреть как getopt(1) используется, тоже едва-ли не в большей
 KF> части скриптов та же самая проблема, особо продвинутые позволяют задавать
 KF> опции getopt из командной строки...
 
 :(
 
 KF>    А ещё меня сильно смущает вот такое (из /etc/init.d/proftpd):
 
 KF>     if [ "x$RUN" = "xyes" ] ; then
 KF>     if [ "x$INETD" = "xyes" ] ; then
 KF>     if [ "x$RUN" = "xyes" ] ; then
 KF>     if [ "x$INETD" = "xyes" ] ; then
 
 KF>    Буква "x" зачем здесь?  Почему нельзя написать "$RUN" = "yes" ?
 
 Можно. Видимо, старая привычка от см. ниже
 
 KF> То есть написать-то можно и будет работать даже, но в чём же здесь подвох?
 
 Подвох в том, что если написать
 if [ $INETD = yes ] ; then
 то действительно будет некузяво.
 В отличие от
 if [ "$INETD" = "yes" ] ; then
 
 -- 
 Alexandr S. Agranovsky llb@udmnet.ru
 --- ifmail v.2.15dev5
  * Origin: LLB, LLC (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: [[b]a]sh, \'$@\' без кавычек -- признак ошибки   Alexandr S. Agranovsky   31 May 2003 10:26:54 
 Re: [[b]a]sh, \'$@\' без кавычек -- признак ошибки   Valentin Nechayev   31 May 2003 11:08:15 
Архивное /ru.linux/364266d24549.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional