Назад | Перейти на главную страницу

Предотвращение завершения вкладки bash для переменной среды со значением пути FS от удаления имени переменной среды

Друзья,

Я использую GNU bash в качестве оболочки в Linux:

$ bash --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ 

Это очень странно действует, когда я устанавливаю переменную среды с путем к FS в качестве ее значения.

Скажем, я хочу добавить / opt / database / bin в начало PATH.

Я начинаю с ввода:

$ export PATH=/o

Затем я нажимаю клавишу табуляции на клавиатуре.

Но вместо завершения пути к / opt он удаляет часть PATH =! Вместо этого я получаю:

$ export /opt/

Это, конечно, для меня крайне бесполезно и очень обидно! Затем мне нужно вручную добавить имя переменной окружения, а это совсем не то, что я хочу делать!

Я хотел, чтобы он довел до этого:

$ export PATH=/opt/

Затем я могу завершить оставшуюся часть пути, используя минимальный набор текста и клавишу табуляции.

Есть ли способ заставить его не удалять переменную среды и действовать разумно, что поможет мне максимально продуктивно работать?

полное отключение Bash-Completion, вероятно, было излишним. Это очень полезная и продуктивная функция.

Сбой, такой как вы описываете, обычно вызван конкретными скриптами конфигурации завершения bash, которые лежат в /etc/bash_completion.d/, установлен сторонним .deb пакеты.

У меня была такая же проблема на Ubuntu, и в моем случае виновником оказался /etc/bash_completion.d/npm скрипт, установленный npm Пакет Debian (содержащий менеджер пакетов для Node.js).

Я только что переместил npm сценарий из /etc/bash_completion.d/ - проблема решена, и полезная функциональность Bash Completion сохранена.

Попробуйте отключить Баш-Завершение.

Ваш PATH Однако у меня завершение работает в системах, использующих Bash-Completion. Вы можете попробовать удалить и переустановить его, чтобы проверить, работает ли он. Я считаю, что предоставляемые им функции слишком полезны, чтобы отказаться от них.