Я читаю сценарий запуска apache, пытаясь устранить некоторые проблемы с моим сервером, но в самом начале есть расширение параметра, которое я действительно не понимаю.
SCRIPTNAME="${0##*/}"
SCRIPTNAME="${SCRIPTNAME##[KS][0-9][0-9]}"
if [ -n "$APACHE_CONFDIR" ] ; then
if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
DIR_SUFFIX="${APACHE_CONFDIR##/etc/apache2-}"
else
DIR_SUFFIX=
fi
elif [ "${SCRIPTNAME##apache2-}" != "$SCRIPTNAME" ] ; then
DIR_SUFFIX="-${SCRIPTNAME##apache2-}"
APACHE_CONFDIR=/etc/apache2$DIR_SUFFIX
else
DIR_SUFFIX=
APACHE_CONFDIR=/etc/apache2
fi
Я просто ищу некоторые разъяснения относительно того, что $ {параметр ## слово} конструкт это потому, что ссылка Баш руководство от gnu не ясно для меня. Руководство определяет это так ...
$ {параметр # слово} $ {параметр ## слово}
слово раскрывается, чтобы получить шаблон так же, как в расширении имени файла (см Filename Expansion) , Если шаблон соответствует началу расширенного значения параметра, то результатом расширения является расширенное значение параметра с кратчайшим совпадающим шаблоном (случай «#») или самым длинным совпадающим шаблоном ( ' # ') удалены. Если параметр равен '@' или '*', операция по удалению применяется к каждому позиционному параметру по очереди, а расширение - это результирующий список. Если параметр представляет собой переменную массива с индексом «@» или «*», операция удаления шаблона применяется поочередно к каждому члену массива, а расширение - это итоговый список .
Это означает, что первая строка хранит пустую строку обратно в SCRIPTNAME
или я просто от основания?
Специальная обработка '*' в части документации '$ {параметр ## слово} ', который вы выделяете, ссылается на' * 'как' parameter'. Однако в 'SCRIPTNAME = '$ {0 ## * /}" '' '' 'отображается как часть' word'. – John1024
Для запись, это расширение параметра не является расширением GNU - это POSIX. (Хотя у Bash также есть некоторые пользовательские формы расширений.) Более каноническое определение можно найти в [opengroup] (http://pubs.opengroup.org/ onlinepubs/009695399/утилиты/xcu_chap02.html # tag_02_06_02). – kojiro