У меня возникла интересная проблема с 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.