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=() 

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

  • Скрипт для su-c на экран не работает как предполагалось
  • Возможно ли создать среду Linux без традиционной командной оболочки?
  • bash: /home/user/.ssh/authorized_keys: нет такого файла или каталога
  • Почему экран GNU / byobu оставляет текст мусора в оболочке во время обратного поиска?
  • grep для Java-метода
  • Где $ _ определяется POSIX?
  • Как определить ошибку в определенном файле при проверке контрольной суммы (какой файл имеет проблему при проверке) в сценарии оболочки
  • если команда find -exec
  • Почему PGID моего дочернего процесса обрабатывает не PID родителя?
  • Эхо-список процесса не работает
  • Получите только файлы, измененные за последние 30 минут, используя sftp get
  • Постоянно проверяйте, изменен ли файл bash
  • Linux и Unix - лучшая ОС в мире.