Запрос командной строки выглядит странно в виртуальной консоли

В эмуляторе терминала, таком как xterm, мое приглашение выглядит так:

[august@macmini ~]$

, но в виртуальной консоли строка ;linux добавляется к приглашению, чтобы она выглядела следующим образом: [!d1 ]

;linux[august@macmini ~]$

Кто-нибудь знает, откуда может появиться строка «linux»?

1
задан 5 May 2013 в 17:10

2 ответа

Просто для удовольствия, вот как я установил свое приглашение:

# inspiration: http://www.stumbleupon.com/su/2LpQMi 
user_host_path="${debian_chroot:+($debian_chroot) }"'\u@\h: \w'
xterm_title='\[\e]0;'"$user_host_path"'\a\]'
color_bold='\[\033[0;1m\]'
color_reset='\[\033[0m\]'
[[ $TERM == xterm* || $TERM == rxvt* ]] && first_part="${xterm_title}"
first_part+="\n${user_host_path}\n"
last_part='\! \$ '
PROMPT_COMMAND="((\$? != 0)) && PS1='${first_part}${color_bold}[\$?]${color_reset} ${last_part}' || PS1='${first_part}${last_part}'"
unset user_host_path xterm_title color_bold color_reset first_part last_part

Похоже на это:

glennj@homebase: ~
200 $ (exit 42)

glennj@homebase: ~
[42] 201 $ cd /tmp

glennj@homebase: /tmp
202 $ 
0
ответ дан 24 May 2018 в 22:38

Я не был сумасшедшим в отношении предлагаемого здесь решения, поскольку я использую один и тот же TERM для виртуальных терминалов Ubuntu в качестве других терминалов (screen-256color). Таким образом, я быстро посмотрел, какие другие переменные среды могут быть полезны для этой цели.

Мое заключение состояло в том, чтобы использовать переменную XDG_VTNR (XDG virtual terminal number?). Поскольку Ubuntu использует VT # 7 для среды рабочего стола, простая проверка того, превышает ли эта переменная больше или равна 7, делает трюк.

У меня есть функция bash, которая все равно строит мою подсказку, поэтому я просто окружен добавление контрольной последовательности заголовка с проверкой на переменную XDG_VTNR.

Например, обратите внимание на полужирный фрагмент ниже:

# Use new test (i.e. [[ ]]) so as not to fail if XDG_VTNR does not exist if [[ $XDG_VTNR -ge 7 ]]; then # Add the window title escape sequence to the prompt else # Don't add the window title escape sequence to the prompt fi

Просто захотелось добавить эту заметку в случае, если она может быть полезен для всех остальных.

0
ответ дан 24 May 2018 в 22:38

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

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