|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene B. Berdnikov 2:5020/400 02 Jun 2003 00:03:24 To : Valentin Nechayev Subject : Re: [[b]a]sh, '$@' без кавычек -- признак ошибки -------------------------------------------------------------------------------- Valentin Nechayev <netch@segfault.kiev.ua> wrote: >>>> Eugene B. Berdnikov wrote: VN> EBB>>>> У [[b]a]sh есть целый букет наследственных болезней... :( EBB>>>> А в _дефолтных_ настройках zsh, например, $@ эквивалентен "$@". VN>>> Это подход всё-таки некорректный. То, что при написании $@ без кавычек VN>>> будет применяться field splitting, документировано в стандарте, и называть VN>>> это "наследственной болезнью" нельзя. EBB>> Цитату можно? VN> VN> Цитату на что? Hа явное применение field splitting к $@ без кавычек? Да. VN> Hет, потому что по умолчанию. Я не никак не пойму, каком стандарте речь? Какой-то POSIX на поведение "классического" sh? Hу, возможно, там так все и записано. Hо говоря о современных шеллах, надо различать их нормальный режим работы и sh-mode. Zsh в своем нормальном режиме не сплитает $var по IFS, и для него было бы очень-очень странно в этом случае сплитать $@ способом, отличным от остальных переменных и массивов. А sh-mode он прекрасно сплитает $@. Т.е. если /bin/sh -> zsh, и в скрипте написано #!/bin/sh, то в развертке $@ никаких проблем не будет. Будут в других местах. Да, в данном случае дефолтное поведение нестандартно, но я считаю его идеологически гораздо более правильным и имею моральное право называть политкорректное (std) поведение "наследственной болезнью." Потому что оно ведет к ряду проблем, о которых плакался инициатор треда. -- Eugene Berdnikov --- ifmail v.2.15dev5 * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/365162be4691.html, оценка из 5, голосов 10
|