从 Mint 18.3 开始,里面的bash_completion
东西/etc/
被禁用了。为了重新启用它,我创建了一个~/.bash_completion
包含以下内容的文件:
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
然后我从我的~/.bashrc
文件中获取它。
注意:~/.bash_completion
实际上是一个符号链接到~/Source/dotfiles/bash_completion
.
当我打开另一个终端窗口时,它会冻结并且在我按下 Ctrl+C 之前不会显示 shell 提示符。
同样,如果我运行source /etc/bash_completion
,我会得到相同的行为。
运行它set -x
表明它可能正在进入无限循环。
我已经搜索过/etc/
,但找不到任何来源~/.bash_completion
。
这是怎么回事?
进一步搜索会显示该
/usr/share/bash-completion/bash_completion
文件,该文件是该~/.bash_completion
文件的来源。因此无限循环。
它似乎
~/.bash_completion
是为自定义完成而设计的,而不是作为一种将.bashrc
文件分成独立部分的方法。只需将用于加载 bash 完成的脚本放在某处
~/.bashrc
并调用它即可。