Как определить, находится ли я в полноэкранном окне bash или окне терминала GUI?

У меня есть код в моем .bashrc, который устанавливает заголовок окна терминала с помощью текущей команды, и он отлично работает в Unity, где терминал находится в окне. Однако, когда я вхожу в систему с помощью терминала Ctrl + Alt + F1 (независимо от того, что он вызвал), мое приглашение заполняется мусором, который представляет собой различные escape-последовательности, которые устанавливают (несуществующий) заголовок окна.

How могу ли я обнаружить из сценария bash, если я в одном или другом?

1
задан 24 September 2013 в 02:01

2 ответа

Не может быть намного проще:

echo "$TERM"

, если он вернет «xterm», вы находитесь в окне терминала, если он возвращает «linux», вы находитесь в виртуальном (Ctrl-Alt- F1)

5
ответ дан 24 May 2018 в 17:40
  • 1
    Вы должны объяснить, как интерпретировать результат – chaskes 29 October 2013 в 07:32
  • 2
    Точные значения могут зависеть от настройки (особенно на том, какой эмулятор терминала используется). – rackandboneman 7 September 2016 в 14:56

В окне терминала в сеансе X11 обычно устанавливается переменная среды DISPLAY (за исключением некоторых случаев, когда используется su); это обычно не будет в консоли.

0
ответ дан 24 May 2018 в 17:40

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

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