Логика аналогична логике дома. :Владелец или арендатор решает, каких гостей выгнать, независимо от того, кому они принадлежат. Кроме того, выселенный гость, которому рады в другом доме (, имеет еще одну жесткую ссылку в чужом каталоге ), не замерзнет снаружи.
Вы можете включать и выключать расширение псевдонимов (без удаления определений псевдонимов )с помощью shopt expand_aliases
. Таким образом, у вас может быть функция, которая получает скрипт, не раскрывая в нем псевдонимы :
src(){ shopt -u expand_aliases;. "$@"; shopt -s expand_aliases; }
или, не предполагая, что псевдонимы включены по умолчанию:
src(){
if shopt -qp expand_aliases; then
shopt -u expand_aliases;. "$@"; shopt -s expand_aliases
else
. "$@"
fi
}
Обратите внимание, :к сожалению, из-за причудливого способа работы ловушки RETURN
в bash вы не можете надежно сделать это из самого исходного скрипта.