我明白之间的差别.bashrc和.bash_profile(或.bash_login与~/.profile此有关),但没有任何特别的理由选择.bashrc了.bash_profile对bash shell的配置呢?
据我了解,.bashrc每次打开新的 bash 窗口时,都会重新加载诸如终端颜色、环境变量等配置。.bash_profile只会在登录时加载一次,我认为这应该足够了。那为什么要放东西.bashrc呢?
我能想到的唯一原因是避免为了加载配置而必须退出系统。
除了纯粹的传统原因之外,我找不到答案。
Shell 选项(来自shopt或set)不会通过环境继承。别名也不是。例如,如果您想failglob为所有 shell启用,则需要在 RC 文件中。别名可以替换为导出的函数,但没有针对这些选项的解决方法。
手册中.bash_profile.bashrc也鼓励使用source,因此您放入的这些配置将加载到登录和非逻辑 shell 中。如果它们只在 中.bash_profile,它们可能永远不会加载到您实际使用的外壳中。
另一种情况是,您有更复杂的实际可执行代码配置(例如,一些高级PROMPT_COMMAND),并希望在每个 shell 中使用新初始化的变量。您可能根本不希望导出这些变量,或者它们可能是数组而不能。
最后一种情况是副作用命令执行:fortune在每个新 shell 中显示或待办事项列表。这不是“配置”,而是设置您的外壳行为。
还有一种更普遍的情况,bash即不作为登录 shell 调用(因为您的会话管理器执行其他操作,或者它不是您的登录 shell,或者...)并且您.bash_profile将永远不会被处理。不过,这可能超出了您的关注范围。
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |