Дублирующиеся приглашения bash

Дублирующиеся приглашения bash

У меня возникла интересная проблема с XFCE Terminal/Gnome Terminal (не воспроизводимая в XTerm), когда выполнение bashили вход в систему с помощью loginили suоткрывает новый экземпляр Bash внутри экземпляра Bash, как показано:

_randall@manbearpig:/home/randall[root@manbearpig randall]#

Ctrl+D и выход оба возвращают к исходному экземпляру bash. Как заставить эти эмуляторы терминала вести себя как Xterm, который открывает новую учетную запись пользователя или экземпляр bash поверх исходного?

решение1

Я не понимаю, в чем проблема . bashпечатаете loginилиsuПРЕДПОЛАГАЕМЫЙчтобы начать новую оболочку.

Чего вы ожидаете?

Я не вижу, где ваша система делает что-то неправильно.

если вы хотите открыть другую программу ТЕРМИНАЛА, введите gnome-terminalили как там называется программа.

Башэтооболочка, где вы вводите команды,gnome-терминал,xterm,консоль(и многое другое) простоэмуляторы терминалакоторые показываютвыходоболочки (bash/sh/dash/ksh/csh/zsh...)

решение2

если

_randall@manbearpig:/home/randall[root@manbearpig randall]#

не является ожидаемой строкой приглашения, затем проверьте переменную окружения PS1, содержащую формат строки приглашения. Найдите "PROMPTING" в руководстве bash, чтобы узнать больше о PS1.

решение3

Вам придется использовать что-то вроде:

exec bash # or exec login or exec su

Но будьте осторожны, так как это заменяет родительский процесс, все окно/вкладка, скорее всего, умрет, и нет никакой гарантии, что новая оболочка "спасет" его. Вам придется попробовать это самостоятельно, я могу гарантировать только то, что это работает в Konsole.

Связанный контент