Завершение вкладки приводит к экранированию знаков доллара [закрыто]

Использование Ubuntu 12.04. Когда я набираю в терминале путь, который начинается со ссылки на переменную env , я нажимаю вкладку, чтобы завершить слово, и он экранирует $ в env ссылка на переменную. В результате мне приходится возвращаться к началу строки и удалять обратную косую черту, чтобы продолжить навигацию по дереву.

Э.

Перед вкладкой: user @ test: ~ $ $ HOME / Docum

После вкладки: user @ test: ~ $ \ $ HOME / Documents /

В моем $ HOME / .bashrc включена функция "bash_completion".

3
задан 24 May 2012 в 01:11

2 ответа

Это что-то с версией bash, которая поставляется с Ubuntu 12.04.

Мне удалось скомпилировать bash из исходного кода, чтобы получить версию bash до 4.2.37, что решило проблему.

0
ответ дан 24 May 2012 в 01:11

Вы упоминаете в комментариях, что Ваша фактическая проблема не была с '$HOME'. Это довольно важно, так как имеет значение, если это - переменная среды или нет.

Bash завершит возможные переменные среды сначала, если Вы запустили со знака доллара, наконец сопровождаемого завершением имени файла. Таким образом, если это не могло бы найти, что переменная завершилась для Вас, это, возможно, нашло имя файла, в этом случае это выйдет из знака доллара с обратной косой чертой, так как это - специальный символ.

При запуске команды с программы, сопровождаемой некоторыми переменными завершение могло бы быть передано программируемому завершению, которое могло также вызвать это. Например, ввод gzip $HOME/, сопровождаемый вкладкой, вставит обратную косую черту. Файлы, обрабатывающие программируемое завершение, принадлежат пакету 'завершение удара', таким образом, любой, можно удалить тот пакет (я не имею в установленном), или можно убедить их, что это - ошибка. Специалисты по обслуживанию: http://bash-completion.alioth.debian.org/

Обновление: на Дуге Linux я испытал версию 2.0 завершения удара, и это работает как ожидалось на ls $HO<TAB>, но не для ls $HOME/<TAB> таким образом, я предполагаю, что они все еще не решили эту ошибку (Ubuntu использует версию 1.3). Можно попытаться вручную установить версию 2.0, но отметить, что она не работает полностью. (Так как отчет об ошибках также упоминает, что это мог быть удар, я использую версию 4.2.37 вместо 4.2.24),

0
ответ дан 24 May 2012 в 01:11

Другие вопросы по тегам:

Похожие вопросы: