Подтвердить что ты не робот

Bash расширение переменной на вкладке завершено

Я запускаю Ubuntu 11.04, и я вижу некоторое нечетное поведение, когда пытаюсь использовать табуляцию в bash по пути, который начинается с переменной. Если у меня есть TOP =/scratch, и я пытаюсь выполнить табуляцию:

cd $TOP/foo

он изменяется на:

cd\$TOP/foo

Я бы предпочел, чтобы он заполнил: cd $TOP/foobar или cd/scratch/foobar но я бы согласился на это, просто не изменив линию и потребовав, чтобы я избежал $.

Кто-нибудь знает, где в bash/readline Я должен посмотреть, чтобы исправить это?

4b9b3361

Ответ 1

Найденный отчет об ошибке, зарегистрируйтесь (если он еще не зарегистрирован) и добавьте себя в список "пострадавших людей", я просто сделал:

https://bugs.launchpad.net/ubuntu/+source/bash/+bug/778627

Обходные

Попробуйте включить direxpand или cdable_vars:

shopt -s direxpand
# or
shopt -s cdable_vars

По-видимому, Esc Tab может быть обходным путем:

Я не нашел правильного решения для этого, но есть обходное решение. Выключение переменных окружения можно отключить, нажав Esc, а затем вкладку.

# cd $SO + [Esc] + [Tab]
# cd $SOME_DIR

<суб > Подтвердите это как ошибку! Я просто подтвердил, что то же самое работает на

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.10
Release:        10.10
Codename:       maverick

Я нарушаю поведение (обновляется) natty:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 11.04
Release:    11.04
Codename:   natty

Хотя я должен добавить, что я не удалял косую черту, но путь (в то время как действительный, существующий, доступный и читаемый) не расширяется. Суб >

Информация: https://help.ubuntu.com/community/ReportingBugs

Ответ 2

Отчет об ошибке, упоминаемый в других ответах в bugs.launchpad.net, дает новое обходное решение, выписывая команду:

shopt -s direxpand

Это работает для меня.

Ответ 3

У меня была аналогичная проблема в cygwin (NT-6.1 2.0.1 2015-04-30) bash (GNU 4.3.33), особенно когда я попытался бы расширить вкладку, содержащую пробелы.

Я положил shopt -s direxpand в свой ~/.bashrc. Проблема решена.