据我了解,Mac上的bash shell读取启动文件的顺序是......
..一旦找到此列表中的一个文件,则忽略另一个文件的内容。
话虽如此,对于哪些文件应该是我真正的Bash启动文件,是否有最佳实践?
一方面,如果.bash_profile优先于任何其他潜在的启动文件,那么应该使用它,因为您可以确保100%的时间正在运行该启动文件中的信息
另一方面,如果.profile是默认存在于Mac系统上的文件,并且需要手动创建.bash_profile,那么也许应该使用它,并且永远不会有理由创建.bash_profile文件。
思想?
答案 0 :(得分:20)
这取决于您是否使用bash以外的shell,以及您是否在配置文件中使用仅限bash功能。如果您使用其他sh样式的shell(sh,ksh,zsh等,但不使用csh或tcsh),请不要使用仅限bash的功能,并且无论您使用的是什么shell都需要相同的设置,您应该使用.profile 。如果要使用仅限bash的功能,请使用.bash_profile。如果你想使用多个shell但是也只使用bash功能,可以将.profile中的常用内容和.bash_profile中的bash-only内容放在一起,然后将if [ -f ~/.profile ]; then . ~/.profile; fi
添加到.bash_profile。
如果您只使用bash,但不依赖于个人资料中任何仅限bash的功能,那么这并不重要。
实际上还有另一个复杂因素:login bash shell source .bash_profile,.bash_login或.profile;非登录交互式bash shell(例如子shell)源代码.bashrc。我倾向于在登录和非登录shell中都需要相同的设置,所以我将所有有趣的东西放在.bashrc中,然后在.bash_profile中放入if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
。如果我也使用了其他shell,我可能会将其中的大部分放在.profile中,而是使用.bashrc源代码。
答案 1 :(得分:1)
为了以防万一,我在某个地方失去配置之前遇到了问题并花了很长时间才找到它,主要是因为我是一个菜鸟。
我正在研究这些用户特定文件,这些用户已经很好地确定了,但配置是在/ etc / profile上设置的。
以防万一。