Ошибка в bash сompletion в Jessie [решено]

Knoppix

Модераторы: Warderer, Модераторы разделов

VasVovec
Сообщения: 121
ОС: Debian Jessie/Sid [amd64]

Ошибка в bash сompletion в Jessie [решено]

Сообщение VasVovec »

Приветствую. Сегодня с трудом, но обновлися до Jessie. Теперь после логина выдает такое:

Код: Выделить всё

bash: _have: команда не найдена
bash: _have: команда не найдена
bash: _have: команда не найдена
vovec@tuxxx:~$ su
Пароль:
bash: _have: команда не найдена
bash: _have: команда не найдена
bash: _have: команда не найдена
root@tuxxx:/home/vovec#

Т.е. получается в каком-то общем скрипте строчки с "_have" встречаются?
В файле /etc/profile таких строк нет. Где еще искать причину?

P.S. Когда я пишу команду exit, то она почему-то печатается повторно:

Код: Выделить всё

root@tuxxx:/home/vovec# exit
exit
vovec@tuxxx:~$
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21346
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ошибка в bash сompletion в Jessie [решено]

Сообщение Bizdelnick »

Например в /etc/bash.bashrc.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
VasVovec
Сообщения: 121
ОС: Debian Jessie/Sid [amd64]

Re: Ошибка в bash сompletion в Jessie [решено]

Сообщение VasVovec »

В /etc/bash.bashrc тоже вроде нет никакого криминала:

Код: Выделить всё

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, overwrite the one in /etc/profile)
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
    function command_not_found_handle {
            # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
           /usr/lib/command-not-found -- "$1"
                   return $?
                elif [ -x /usr/share/command-not-found/command-not-found ]; then
           /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
        else
           printf "%s: command not found\n" "$1" >&2
           return 127
        fi
    }
fi


но в нем как раз упоминается command-not-found.
Я в процессе гугления смог найти только что-то похоже :dry: про bash completion
https://bugs.launchpad.net/ubuntu/+source/b...on/+bug/1388445
Но как дальше искать причину я пока не понимаю.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21346
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ошибка в bash сompletion в Jessie [решено]

Сообщение Bizdelnick »

Чем гадать, я бы посмотрел grep -R _have /etc. Может что лишнее и найдёт, но нужное тоже с высокой вероятностью.
Другой вариант — Вы и пользователю, и руту прописали в ~/.bashrc или ~/.profile что-то, что поломалось после обновления. Если невооружённым взглядом не видно, можно для проверки создать нового пользователя и проверить, воспроизведётся ли ошибка под ним.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Ошибка в bash сompletion в Jessie [решено]

Сообщение serzh-z »

_have - это bash-completion сломался.
Спасибо сказали:
VasVovec
Сообщения: 121
ОС: Debian Jessie/Sid [amd64]

Re: Ошибка в bash сompletion в Jessie [решено]

Сообщение VasVovec »

Я тоже подумал про bash-completion, т.к. в его файлах встречаются строчки с _have.
Но в папке /usr/share/bash-completion/completions больше 100 файлов. Как искать источник ошибки? Файлы там все стандартные, т.к. я их вручную не исправлял.
И еще я подумал, что bash-completion по идее ведь нужен для помощи при наборе команд вручную? Почему же он тут пытается работать сразу после логина в консоли (т.е. до набора мной каких бы то ни было команд)?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21346
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ошибка в bash сompletion в Jessie [решено]

Сообщение Bizdelnick »

VasVovec писал(а):
01.02.2016 09:34
в папке /usr/share/bash-completion/completions больше 100 файлов

Вряд ли дело в них. Есть ещё /etc/bash_completion.d/*, я бы начал оттуда.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
VasVovec
Сообщения: 121
ОС: Debian Jessie/Sid [amd64]

Re: Ошибка в bash сompletion в Jessie [решено]

Сообщение VasVovec »

Bizdelnick писал(а):
01.02.2016 12:26
VasVovec писал(а):
01.02.2016 09:34
в папке /usr/share/bash-completion/completions больше 100 файлов

Вряд ли дело в них. Есть ещё /etc/bash_completion.d/*, я бы начал оттуда.

Чудеса. Там файлов тоже было 26 файлов. Но со строчкой _have только один - /etc/bash_completion.d/wajig
Дата изменения у него была 2014 год, но какая-то путаница со скобками {}. Я удалил пакет wajig, т.к. давненько им не пользовался. И строки

Код: Выделить всё

bash: _have: команда не найдена
bash: _have: команда не найдена
bash: _have: команда не найдена

при логине перестали появляться.
Спасибо за наводку :drinks:

Но повторение команды exit продолжает появляться:

Код: Выделить всё

root@tuxxx:/home/vovec# exit
exit
vovec@tuxxx:~$

Интересно из-за чего происходит это повторение? В Wheezy такого не было.
Спасибо сказали:
yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: Ошибка в bash сompletion в Jessie [решено]

Сообщение yoshakar »

VasVovec писал(а):
01.02.2016 13:51
Интересно из-за чего происходит это повторение?
Это не повторение, а подтверждение — сообщение от команды exit (или, скорее, покидаемой оболочки), что действительно выполняется выход. Если в Wheezy такого не было — тем хуже для Wheezy.
Спасибо сказали: