尽管安装了 bash 补全功能,但 COMP_LINE 仍未设置

尽管安装了 bash 补全功能,但 COMP_LINE 仍未设置

我在 OSX 上使用 homebrew 的 bash 完成包,它安装在 /usr/local/etc/bash_completion 中。它工作正常,但它的许多扩展依赖于以 COMP_ 开头的各种环境变量,例如 COMP_LINE。不幸的是,这些环境变量没有被导出到我的 bash 环境中,尽管我获取了正确的文件。这是我的 .bash_profile 中的适用区域:

# bash completion
if [ -f `brew --prefix`/etc/bash_completion ]; then
  . `brew --prefix`/etc/bash_completion
  . /usr/local/etc/bash_completion.d/git-completion.bash
fi

但是 COMP_LINE 尚未设置,这导致其他完成插件无法工作:

> env | grep COMP_LINE
>

知道为什么环境变量没有设置吗?提前感谢您的时间。

答案1

$COMP_LINE不是环境变量。它是一个内部变量,并且仅对完成函数可见,对其他 shell 使用不可见。(大多数其他内部变量在 中可见declare。)

相关内容