É possível ter um script bash (como um .bashrc
ou .bash_profile
, basicamente) que é executado somente após o cd em uma pasta específica?
Responder1
Adicione isso ao seu arquivo ~/.bashrc
.
Se .bashrc
estiver localizado no diretório de trabalho atual:
PROMPT_COMMAND='if [[ "$bashrc" != "$PWD" && "$PWD" != "$HOME" && -e .bashrc ]]; then bashrc="$PWD"; . .bashrc; fi'
Responder2
Dependendo do seu caso de uso exato e das restrições,ondirpode atender às suas necessidades:
ondir é um pequeno programa para automatizar tarefas específicas para determinados diretórios. Funciona executando scripts em diretórios quando você entra e sai deles.
Isso é feito usando um ~/.ondirrc
arquivo central para configuração por diretório. Em contraste, a PROMPT_COMMAND
configuração inteligente sugerida por @Cyrus permite que a configuração resida nos próprios diretórios individuais. Cada abordagem é válida; depende das restrições e dos dados com os quais você está lidando.
Isenção de responsabilidade:Nunca usei ondir
pessoalmente. Me deparei com isso enquanto procurava uma maneira automática de lidarconfiguração do usuário git por diretório. Nesse caso, ondir
não atendeu às minhas necessidades - acabei usando um alias git passando --config
opções para git clone
.
Responder3
adição da resposta do @Cyrus, se você usar zsh
, precisará usar precmd()
:
PROMPT_COMMAND='if [[ "$profile" != "$PWD" && "$PWD" != "$HOME" && -e .profile ]]; then profile="$PWD"; source .profile; fi'
precmd() { eval "$PROMPT_COMMAND" }
é respondido deesta resposta
nota:
meus testes imediatos para .profile
not .bashrc
.