Mac .bashrc 中的源/别名不是永久性的
Source / Alias not Permanent in Mac .bashrc
我有一个 .sources
符号链接指向一个目录,其中包含我希望在终端打开时获取的文件。
在我的 .bashrc
文件中,该文件来自 ~/.bash_profile
,我有以下代码
sourcesDir=$HOME/.sources
ls -B $sourcesDir | while read filename; do
echo "source $sourcesDir/$filename"
source $sourcesDir/$filename
done
当我启动终端时,我得到以下输出
source /Users/merlinpatterson/.sources/bash_aliases
source /Users/merlinpatterson/.sources/git_completion.bash
source /Users/merlinpatterson/.sources/git_prompt.sh
source /Users/merlinpatterson/.sources/meteor.sh
但是,当我运行alias
时,none的别名出现了。导出的任何变量都是空白的。并且 __git_ps1
未找到。
如果我 运行 在启动终端后执行上述命令,一切正常,所以文件本身没问题。
为什么 source
的结果没有留在终端中?
while
循环在子 shell 中运行,而不是您当前的 shell。改用
for filename in "$sourcesDir"/*; do
source "$filename"
done
我有一个 .sources
符号链接指向一个目录,其中包含我希望在终端打开时获取的文件。
在我的 .bashrc
文件中,该文件来自 ~/.bash_profile
,我有以下代码
sourcesDir=$HOME/.sources
ls -B $sourcesDir | while read filename; do
echo "source $sourcesDir/$filename"
source $sourcesDir/$filename
done
当我启动终端时,我得到以下输出
source /Users/merlinpatterson/.sources/bash_aliases
source /Users/merlinpatterson/.sources/git_completion.bash
source /Users/merlinpatterson/.sources/git_prompt.sh
source /Users/merlinpatterson/.sources/meteor.sh
但是,当我运行alias
时,none的别名出现了。导出的任何变量都是空白的。并且 __git_ps1
未找到。
如果我 运行 在启动终端后执行上述命令,一切正常,所以文件本身没问题。
为什么 source
的结果没有留在终端中?
while
循环在子 shell 中运行,而不是您当前的 shell。改用
for filename in "$sourcesDir"/*; do
source "$filename"
done