|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vlad Gnatov 2:5020/400 09 Nov 2006 03:42:32 To : Artem S. Ignatiev Subject : Re: прикол -------------------------------------------------------------------------------- Artem S. Ignatiev пишет: VG>> ${parameter+word}: VG>> parameter Set and Not Null -> substitute word VG>> parameter Set But Null -> substitute word VG>> parameter Unset -> substitute null VG>> ${parameter##word}: VG>> Remove Largest Prefix Pattern. The word shall be expanded to produce VG>> a pattern. The parameter expansion shall then result in parameter, VG>> with the largest portion of the prefix matched by the pattern deleted. AS> А это откуда? http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html AS>>> Что не помогает мне понять, почему не builtin ${0##*/} "$@" VG>> Потому что в старых борнах (до SRV3) при отсутствии агрументов $@ VG>> раскрывался в Set But Null вместо Unset. AS> Интересно VG>> Данная конструкция проверяет $1 и если он Unset, то делает Unset и $@ AS> А вот это вот неправда даже по тому куску мана, что Вы привели. AS> Если оно делает Unset $@, то, ввиду недокументированности, это бага, AS> а не фича. Перефразируем. "..проверяет $1 и если он Unset, то также возвращает Unset, что практически эквивалентно установке значения $@ в Unset" AS>Ээээ... Возможно... Защита от ситуации /usr/bin/cd "" "/usr" ? Кстати, в старых bsd'шных борнах пустые аргументы в $@ действительно отбрасывались. -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: Talk.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6488ad9c558a.html, оценка из 5, голосов 10
|