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/

  • Могу ли я отслеживать тире скрипта без изменения его исходного кода?
  • как отключить ожидание «нажмите enter» после выполнения сценария bash над cron
  • изменить путь по всему миру
  • $ VAR vs $ {VAR} и цитировать или не указывать
  • Как искать слово во всем содержимом каталога в linux
  • Список подкаталогов, содержащих определенное имя файла
  • Как создать вопрос подтверждения в Linux?
  • Как проверить, содержит ли строка подстроку в тире или золе?
  • One Solution collect form web for “Ubuntu меняет оболочку на меня”

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

     local cword words=() 

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

    Interesting Posts

    CentOS Black Screen после 4-х часового индексации

    Как заставить sshd прослушивать два порта, но ограничивать один из них одним адресом источника?

    Как использовать надлежащий видеодрайвер на Scientific Linux 6 для экранов Display Port?

    Переход к Linux

    bash: /home/user/.ssh/authorized_keys: нет такого файла или каталога

    Может ли Debian 5 (Lenny) использовать SSL?

    grep man-страница команды для дефиса

    В чем разница между изменением и изменением в контексте команды stat?

    Как запустить только одно приложение при загрузке в RHEL 6?

    iotop показывает 1,5 Мбайт / с записи на диск, но все программы имеют 0,00 B / s

    медленная скорость ввода-вывода на NTFS-разделе

    Что происходит с файлами во время установки триплекс «./configure, make, make install»?

    GCC (toolchain) для Ralink SoC – ELF не найден и синтаксическая ошибка

    Ошибка файловой системы Live с помощью EasyBCD

    Таймер ключей был отключен при попытке добавить открытый ключ GPG

    Linux и Unix - лучшая ОС в мире.