COMP_LINE не установлен, несмотря на то, что установлено завершение bash
Я использую пакет дополнения bash от Homebrew для OSX, который устанавливается в /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
не является переменной среды Это внутренняя переменная, и она видна только функциям завершения, а не другому использованию оболочки. (Большинство других внутренних переменных видны в declare
.)