Intereting Posts
Программа BASH для удаления файлов, ожидаемое выражение Integer Установите последнюю версию пакета, для которого не требуется обновление зависимостей Как сделать персонажа PS1 более смелым? Почему ln -s не говорит, что сбой при создании символической ссылки на существующий символический каталог? Рекурсивно подсчитывать количество слов в одинаково именованных файлах в разных каталогах Как я могу увеличить каталоги по умолчанию в дереве дерева vim? Приводы LVM имеют одинаковый pvid Monit не будет выполнять команды Bash: Что делает «> |»? Установка .tgz … как? Как узнать, какие символические ссылки существуют для данного каталога? Хост-процессор не масштабирует частоту, когда гостю KVM это нужно Как я могу доверять самозаверяющему сертификату для Zypper? Как я могу просмотреть экран загрузки GRUB2? zsh: изменить правила завершения и перекомпилировать файл .zwc

Запомнить enable -n в дочерней оболочке

У меня отключена echo built-in функция, так что echo будет искать в $PATH . Для этого я использовал команду enable -n . См. Ниже.

 $ type echo echo is a shell builtin $ enable -n echo $ type echo echo is /bin/echo 

Но когда я открываю дочернюю оболочку из текущей оболочки, снова используется встроенное echo . См. Ниже.

 $ type echo echo is /bin/echo $ bash $ # Now I am in child shell $ type echo echo is a shell builtin 

Есть ли способ сохранить этот параметр в дочерней оболочке, так что в дочерней оболочке также будет искать echo в $PATH (т. enable -n echo останется в силе)?

Да, есть два пути. Один для интерактивного и один для неинтерактивных оболочек bash.

Для интерактивных оболочек bash добавьте команду enable -n echo в файл $HOME/.bashrc . Тогда все интерактивные оболочки будут использовать внешнее эхо.

Я не рекомендую это для неинтерактивных оболочек, но для этого вы должны установить переменную среды BASH_ENV в любой файл, содержащий строку enable -n echo . Затем все неинтерактивные оболочки bash будут запускать файл, названный файлом BASH_ENV, тем самым заставляя их использовать внешнее эхо.

Это («enable -n») является специфичной для bash . Вы можете

 enable -n echo 

в соответствующем сценарии инициализации оболочки, например, ~/.bashrc , чтобы он влиял на каждую вызываемую вами оболочку.