LINUX.ORG.RU

Сломалось автодополнение в bash

 ,


0

1

Привет!

Сейчас заметил что не работает автодополнение (по tab'у) в bash, например не дополняет имена файлов, если просто протабать на пустой строке говорит

-bash: words: неправильный индекс массива

и потом выводит содержимое каталога в котором нахожусь, при этом выводи только половину информации - если поставить пробел и протабать выводит больше файлов. Если ввести первые несколько символов команды то тогда дополняет нормально. В общем как это можно вылечить? Google говорит о проблемах при обновлении bash-completion, но его я давно не обновлял, свежая версия только если из git тянуть.

ОС - Debian jessie/sid, версия bash-completion 1:2.1-2.

UPD. В процессе написания поста заметил что в, например, /etc нормально дополняет имена файлов.

Спасибо!

★★★★★

Ответ на: комментарий от zolden

Нет, спасибо, этот вариант мне не подойдет.

alozovskoy ★★★★★
() автор топика
Ответ на: комментарий от zolden

Опаньки, у тебя сезонное обострение, срочно к доктору!

sdio ★★★★★
()

Так, снес bash-completion - без него работает нормально, хоть знаю куда копать.

alozovskoy ★★★★★
() автор топика

-bash: words: неправильный индекс массива

Это нормальное и правильное поведение — bash не дополняет любые каталоги указанные в начале — он дополняет только команды, исполняемые файлы, и каталоги такие файлы содержащие. Дополнение каталога /etc (содержащего скрипты и пр. — тому подтверждение). И каталоги /bin, /usr/bin и т.п. он будет тоже дополнять А вот домашний каталог как правило не содержащий файлов с признаком x он дополнять не станет, и /usr/share так же не будет — надо указать хотя-бы /, а для просмотра текущего каталога следует сначала указывать ./ а затем уже жать tab. Чтобы получить полный перечень — лучше всего запрос предварять какой-нибудь командой, например ls.

anonymous
()
Ответ на: комментарий от anonymous

ОК, это понятно и логично, но также он и имена файлов не дополняет, например

$ cat ~/.bashr<tab> 

не работает.

alozovskoy ★★★★★
() автор топика
Ответ на: комментарий от alozovskoy

ОК, это понятно и логично, но также он и имена файлов не дополняет, например…

А этот .bashr точно присутствует? — в некоторых системах они именуются .bash.bashrc

anonymous
()
Ответ на: комментарий от alozovskoy

Ну конечно я сначала проверил наличие этого файла, прав и так далее.

Я бы посмотрел тогда, что за последнее время изменилось в файлах профиля в каталогах /etc и ~/ (bashrc, profile и т.д.) — не появилось ли чего лишнего, например: файл .bash.expert, или в bashrc или profile может чего затёрлось/изменилось. Вообще-то имена файлов дополняет и голый bash, без всяких completion. А в некоторых дистрибутива для того чтобы заработал bash-completion обязательно необходимо было прописать в ~/.bashrc в конец файла такую конструкцию:

if [ -f /etc/bash_completion ]; then
    ./etc/bash_completion
fi
иначе оно не работает. (Сейчас это переехало в /usr/share/bash-completion/bash_completion)

anonymous
()
Ответ на: комментарий от anonymous

прописать в ~/.bashrc в конец файла такую конструкцию <...> иначе оно не работает. (Сейчас это переехало в /usr/share/bash-completion/bash_completion)

Пробовал и руками запускать эти скрипты оба, и в bashrc есть. В хоме ничего нового не нашел, в bashrc тоже все корректно, а что там в /etc я хз.

alozovskoy ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Так а чем это отличается от простого

. /usr/share/bash-completion/bash_completion

Кстати говоря проблема, похоже, самоустранилась - я вычистил имеющийся bash-completion, ребутнулся, поставил его заново и еще раз ребутнулся и вот тогда вроде все заработало. Хотя это все параллельно с другими задачами шло, так что может его что-то другое зацепило. В любом случае понаблюдаю пока еще.

alozovskoy ★★★★★
() автор топика
Ответ на: комментарий от at

Обновился по случаю, но 2.1-2 вроде много где стоит и сама ветка уже «старая», у других проблем нет.

alozovskoy ★★★★★
() автор топика
Ответ на: комментарий от at

Проблема возникла в bash/4.3-2 (который вышел 5.03.2014)

Это очень похоже на правду, спасибо - вчера обновления накатывал, проверю был ли там bash исправленный.

alozovskoy ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.