Игнорирование псевдонимов оболочки bash

Логика аналогична логике дома. :Владелец или арендатор решает, каких гостей выгнать, независимо от того, кому они принадлежат. Кроме того, выселенный гость, которому рады в другом доме (, имеет еще одну жесткую ссылку в чужом каталоге ), не замерзнет снаружи.

-1
22.10.2021, 00:13
1 ответ

Вы можете включать и выключать расширение псевдонимов (без удаления определений псевдонимов )с помощью 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 вы не можете надежно сделать это из самого исходного скрипта.

1
22.10.2021, 12:25

Теги

Похожие вопросы