源/别名在Mac.bashrc中不是永久的



我有一个.sources符号链接,指向一个目录,其中包含我希望在打开终端时获取的文件。

在来自~/.bash_profile.bashrc文件中,我有以下代码

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时,没有显示任何别名。导出的任何变量都为空。未找到CCD_ 5。

如果我在启动终端后运行上述命令,一切都正常,所以文件本身也很好。

为什么source的结果没有留在航站楼?

while循环在子shell中运行,而不是在当前shell中运行。改为使用

for filename in "$sourcesDir"/*; do
source "$filename"
done

最新更新