是否有特定于文件夹的 .bashrc 或 .bash_profile?

是否有特定于文件夹的 .bashrc 或 .bash_profile?

是否可以有一个 bash 脚本(基本上像.bashrc.bash_profile)仅在 cd 进入特定文件夹时执行?

答案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不符合我的需要——我最终使用 git 别名将--config选项传递给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

相关内容