特定のフォルダーに cd したときにのみ実行される bash スクリプト (基本的には.bashrc
または など)を作成することは可能ですか?.bash_profile
答え1
これを に追加します~/.bashrc
。
.bashrc
現在の作業ディレクトリにある場合:
PROMPT_COMMAND='if [[ "$bashrc" != "$PWD" && "$PWD" != "$HOME" && -e .bashrc ]]; then bashrc="$PWD"; . .bashrc; fi'
答え2
具体的な使用例や制約に応じて、オンディールあなたのニーズに合うかもしれません:
ondir は、特定のディレクトリに固有のタスクを自動化する小さなプログラムです。ディレクトリに出入りするときに、ディレクトリ内のスクリプトを実行することで機能します。
これは、~/.ondirrc
ディレクトリごとの構成に中央ファイルを使用することで実現されます。対照的に、PROMPT_COMMAND
@Cyrus が提案した巧妙な設定では、構成を個々のディレクトリ自体に配置できます。それぞれのアプローチは有効であり、処理する制約とデータによって異なります。
免責事項:個人的には使ったことはありませんondir
。自動処理の方法を探しているときに見つけましたディレクトリごとの git ユーザー設定その場合、 はondir
私のニーズに合わなかったので、--config
にオプションを渡す git エイリアスを使用することになりましたgit clone
。
答え3
@Cyrus の回答からの追加: を使用する場合はzsh
、 を使用する必要がありますprecmd()
:
PROMPT_COMMAND='if [[ "$profile" != "$PWD" && "$PWD" != "$HOME" && -e .profile ]]; then profile="$PWD"; source .profile; fi'
precmd() { eval "$PROMPT_COMMAND" }
回答はこの答え
注:
私のプロンプトはそうで.profile
はないことをテストします.bashrc
。