Ubuntu меняет оболочку на меня

Эта машина Ubuntu показывает ошибки при запуске нового терминала. Проблема заключается в следующем:

Когда выполняется завершение bash ( . /usr/share/bash-completion/bash_completion ), оболочка имеет место не bash а некоторые определения переменных со списком local words=() выполняется (потому что только bash понимает списки).

Мое решение состояло в том, чтобы явным образом вызывать с bash /usr/share/bash-completion/bash_completion , но я хотел бы знать, почему другая оболочка вызывается при открытии терминала. Я думал, что, поскольку bash является моим дефолтом, он также будет использоваться во время поиска.

Я сделал echo $0 непосредственно перед вызовом файла заполнения bash, а выход – bash .

Что может привести к тому, что bash не будет использоваться для поиска?

Рассмотрение вопросов из комментариев:

Это происходит, когда я запускаю новую консоль, а это означает, что ядро ​​запустит новое окно терминала, вызвав ~/.profile , который, в свою очередь, сделает . "$HOME/.bashrc" . "$HOME/.bashrc" , который, в свою очередь, будет служить источником завершения bash ( . /usr/share/bash-completion/bash_completion )

У меня нет файла ~/.bash_completion .

Я не могу поместить echo "$0" внутрь bash_completion, потому что он не сработает и не будет выполнен.

Мои .bashrc и .profile являются стандартными, которые поставляются с Ubuntu. У меня нет .bash_profile . Вы можете найти их в своем локальном Ubuntu 14.04 под /etc/skel/

One Solution collect form web for “Ubuntu меняет оболочку на меня”

Проблема была не в оболочке или chsh, а в чем-то экзотическом. Это был глупый псевдоним на местном. Кто-то подумал, что было бы неплохо создать псевдоним, который отображает локальный IP-адрес, и назвал его «локальным», поэтому строка

 local cword words=() 

провалился не потому, что оболочка не могла обрабатывать массивы. Это не удалось, потому что псевдоним расширялся, и () не имело смысла.

  • Это ошибка, которую zsh печатает полную строку с printf '% .s'?
  • echo $ 1 = некотируемая разнесенная строка?
  • grep с переменной в переменной
  • Как знак двоеточия и знак вопроса доллара объединяются в sh?
  • -r имя_файла &&. имя файла
  • Очень медленное автозаполнение в Linux для Windows
  • в то время как цикл чтения
  • Нажмите кнопку html через скрипт оболочки?
  • Оболочка shellscript дает ошибку
  • Новая строка в переменной
  • что такое $$ в bash?
  • Linux и Unix - лучшая ОС в мире.