5

Когда я выполняю автозаполнение переменной bash, в конце добавляется дополнительный пробел.

$FO[TAB]

->

$FOO" " 

Я добавил кавычки, чтобы обозначить пробел. Проблема в том, что некоторые переменные, которые мы используем, являются каталогами, а пробел раздражает, так как он должен быть удален и / / должен быть напечатан. Можно ли как-то настроить такое поведение?

$FO[TAB]

->

$FOO/

или же

cd $FO[TAB]

->

cd $FOO/

2 ответа2

1

Лучше поздно ответить, чем ничего ...

Удобное завершение имен каталогов в переменных было реализовано в bash 4.3. Bash 4.3 проверяет, расширяется ли переменная оболочки до имени каталога и добавляет / к слову соответствующим образом.

-1

У меня была такая же проблема на CentOS 7 с bash 4.2. Я не мог найти решение / обходной путь в Интернете. "ням апгрейд баш" тоже не помог.

В конце концов я решил скомпилировать / установить последнюю версию bash (на момент 4.4). Я просто следил за этим блогом: Как установить Bash 4.4 в дистрибутивах Linux

Tab-завершение работает как положено в 4.4. Кажется, это ошибка в 4.2.

Обратите внимание: после "make install" исполняемый файл находится в /usr /local /bin / (/bin / bash остается без изменений), поэтому вы хотите настроить / etc / passwd, чтобы сделать новую версию оболочкой входа по умолчанию для пользователей.

НТН

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .