我正在搞乱我的.bash_profile文件(Mac OSX),当我尝试设置别名时:
alias。=“。〜/ .bash_profile”
我随后无法获取我的.bash_profile文件(退出文件后键入“source .bash_profile”并停留在非终止进程中)。当我将别名更改为:
alias s =“。〜/ .bash_profile”
一切都很好。这是什么交易?
答案 0 :(得分:6)
当调用的文件(在这种情况下,~/.bash_profile
)也使用.
时,会发生递归调用,因为.
会再次引用同一文件。
如果~/.bash_profile
尝试使用此行调用~/.bashrc
,请说出来:
[[ -f ~/.bashrc ]] && . ~/.bashrc
该命令将首先作为别名展开,它将改为:
[[ -f ~/.bashrc ]] && . ~/.bash_profile ~/.bashrc
这将使真正的.
调用~/.bash_profile
而不是~/.bashrc
作为位置参数参数。这使得无限循环。
重现:
~.bash_profile
必须存在,并且包含使用.
调用另一个文件的行。alias .="echo -n x; . ~/.bash_profile"; .
。它应该产生无限x
,直到shell崩溃。