Отображение имени сеанса экрана GNU и заголовка окна в командной строке

Есть ли способ представить имя сеанса и заголовок окна GNU в приглашении оболочки (скажем, подсказка Bash, определяемая PS1 )?

Экран предоставляет некоторые переменные среды (с screen (1) manpage):

 STY Alternate socket name. WINDOW Window number of a window (at creation time). 

«При создании» означает, что если вы перенумеруете окно (используя команду number экрана), оболочка не будет уведомлена об изменении, а $ WINDOW по-прежнему будет таким же, как номер первого окна.

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

 PS1='\u@\h(${STY}:${WINDOW}):\w$ ' 

Я использую это:

 (`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`) 

удаляет номер процесса из ${STY}
включает номер окна (как указано «во время создания»)
включает заголовок окна (возвращенный с screen -Q title )

заметки:

  • при первом screen -Q ждет возврата нажатой клавиши
  • Я устанавливаю заголовок окна с помощью CA CA, а затем отправляю исходный файл .profile для обновления приглашения