Терминал закрывается после ввода несуществующей команды

Кажется, это ошибка, но я не уверен, о каком пакете нужно сообщить. Попробуйте это:

  • Открыть терминал gnome
  • shift - ctrl - t (открыть новая вкладка)
  • тип: foo foo &
  • Вкладка закрыта

Правильное поведение будет Command not found.

Это происходит каждый раз на терминале гномов. На xterm (без вкладок, конечно) он работает случайным образом - возможно, 2 из 3 раз пытались.

3
задан 31 December 2013 в 17:53

2 ответа

Позвольте мне предположить, в вашем .bashrc (.bash_profile) есть опция set -e (или это длинная форма set -o errexit).

-e

Выйти немедленно, если конвейер (который может состоять из одной простой команды ) команда subshell , заключенная в круглые скобки, или одна из команд, выполняемых как часть списка команд, заключенного в фигурные скобки (см. SHELL GRAMMAR выше), завершается с ненулевым статусом. Оболочка не завершает работу, если сбойная команда является частью списка команд, следующих сразу за ключевым словом , а затем или до , частью теста после , если или elif зарезервированные слова, часть любой команды, выполненной в списке & amp; или || , за исключением команды, следующей за последними & amp; или || , любая команда в конвейере, кроме последней, или если возвращаемое значение команды инвертируется с ! . Ловушка ERR , если установлена, выполняется до выхода из оболочки. Этот параметр применяется к среде оболочки и к каждой среде подоболочки отдельно (см. ОКРУЖАЮЩАЯ СРЕДА КОМАНДЫ выше) и может привести к выходу подоболочек после выполнения всех команд в подоболочке.

- bash (1)

Эта опция очень полезна для некоторых скриптов - она ​​позволяет избежать многочисленных || exit 1, т.е. г. вместо

cd /var/ || exit 1
tar -cvf myarchive.tar "$SOMEDIR" || exit 1
rm -r "$SOMEDIR"

вы можете написать

set -e
cd /var/
tar -cvf myarchive.tar "$SOMEDIR"
rm -r "$SOMEDIR"

Но, конечно, нет никаких причин устанавливать его для интерактивного сеанса Bash.

0
ответ дан 31 December 2013 в 17:53

Проверьте и убедитесь, что у вас нет некоторой конфигурации bashrc или профиля, чтобы изменить нормальное поведение этого экземпляра.

Лучший способ убедиться в этом - сделать резервную копию ваших текущих файлов bashrc и профиля, а затем заменить активные копии первичными копиями этих двух файлов. Выйдите из системы, затем снова войдите в систему и проверьте, сохраняется ли у вас такое поведение.

Если это устраняет этот недостаток, аккуратно добавьте свою пользовательскую конфигурацию и запишите последние изменения, внесенные, если недостаток вернется.

0
ответ дан 31 December 2013 в 17:53
  • 1
    Хорошо я проверил man NetworkManager.conf, файл /etc/NetworkManager/NetworkManager.conf; это собирается работать только позволив войти в систему демон, но к сожалению я должен проверить это впоследствии, если машина не была настроена для этого. Так или иначе +1 для kern.log решение и для первого решения, которое могло бы быть полезным в других случаях – kos 21 June 2015 в 17:28

Другие вопросы по тегам:

Похожие вопросы: