|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/364266d24549.html, оценка из 5, голосов 10
|