Переопределение cd встроено в исходные настройки env, можно использовать с autocad?

Я в настоящее время переопределяю встроенную команду cd для источника файла среды на основе среды, которая в настоящее время строится.

Мой главный вопрос касается того, как cd запускается, когда у меня включен shopt -s autocd --дя на autocd, чтобы добраться до конкретных каталогов, мои строки source не выполняются. Где я могу узнать больше о том, как autocd запускает cd и почему это работает только при явном вызове cd?

Мой .bashrc содержит это для «автоматического поиска»: [!d2 ]

cd() {
  builtin cd "$@"

  if [[ `pwd` == '/home/ubuntu/deploys/staging' ]]; then
    echo "Sourcing ~/.appconfig/staging.env!";
    source /home/ubuntu/.appconfig/staging.env;
  fi

  if [[ `pwd` == '/home/ubuntu/deploys/demo' ]]; then
    echo "Sourcing ~/.appconfig/demo.env!"
    source /home/ubuntu/.appconfig/demo.env;
  fi

  if [[ `pwd` == '/home/ubuntu/deploys/prod' ]]; then
    echo "Sourcing ~/.appconfig/prod.env!"
    source /home/ubuntu/.appconfig/prod.env;
  fi

}

Я знаю, что это немного опасно и может иметь непреднамеренные последствия, но я могу жить с этим пока. Если есть лучшее решение для автоматического поиска списка переменных среды, когда cd входит в каталог, я все уши.

1
задан 28 September 2015 в 22:58

0 ответов

Другие вопросы по тегам:

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