Выполнять скрипты bash при вводе каталога

Каков наилучший способ выполнения скрипта при входе в каталог?
Когда я перехожу в новый каталог, я бы хотел, чтобы bash выполнял сценарий projectSettings.bash, как это делает RVM.

One Solution collect form web for “Выполнять скрипты bash при вводе каталога”

Вы можете сделать cd функцией (и pop и pushd ), и заставить ее обнаруживать, если вы введете этот конкретный каталог.

 cd () { builtin cd "$@" && chpwd; } pushd () { builtin pushd "$@" && chpwd; } popd () { builtin popd "$@" && chpwd; } unset_all_project_settings () { # do whatever it takes to undo the effect of projectSettings.bash, # eg unset variables, remove PATH elements, etc. } chpwd () { case $PWD in /some/directory|/some/other/directory) . ./projectSettings.bash;; *) unset_all_project_settings;; esac } 

Не делайте этого в каталогах, которые вы не указали в белый список, потому что кому-то будет очень легко обмануть вас в запуске произвольного кода – отправьте вам архив, чтобы вы разархивировали его, изменили в созданный им каталог, Теперь запустите код злоумышленника.

Я не рекомендую этот подход, потому что это означает, что скрипт будет выполнен, даже если вы введете этот каталог по какой-либо причине, не связанной с работой над проектом. Я предлагаю иметь определенную функцию, которая изменяется в каталог проекта и создает сценарий настроек.

 myproj () { cd /some/directory && . ./projectSettings.bash } 
  • Сценарий оболочки для списка заблокированных пакетов во FreeBSD
  • разделите 1200 страниц документа на 500 страниц, а затем оставшиеся
  • печатать строки со специфическими словами
  • Объединение файлов по строкам
  • Пара арифметических связанных команд, Dash, POSIX shell, sh, Increment
  • Команда Bash для закрытия всех отдельных запущенных программ с помощью экрана GNU?
  • Извлеките числа из текстового файла и поместите их в другой файл
  • Ошибка: неоднозначное перенаправление при передаче вывода команде
  • Shell Script не может управлять командой man
  • «Stdin: не является tty» почтой для запуска скриптов в качестве заданий cron
  • Использование getopts для анализа параметров после аргумента без опции
  • Linux и Unix - лучшая ОС в мире.