Как я отображаю текущее имя “сессии” или “sockname” экранной сессии в строке состояния?

Я выполняю несколько экранных сессий каждый созданный с 'экраном-S имя', и я хотел бы смочь отобразить в строке состояния имя, я раньше создавал текущую экранную сессию.

Однако я, может казаться, не выполняю это. Какие-либо идеи?

25
задан Neg_EV 19 March 2010 в 18:27
поделиться

1 ответ

экран имеет две строки состояния, строку заголовка и панель жесткого состояния, обе из которых используют escape-последовательности, указанные в разделе «STRING ESCAPES» man screen . К сожалению, нет выхода, который напрямую ссылается на имя сеанса.

Однако есть хитрость, которая позволит вам это сделать.

screen передает имя сеанса оболочке с помощью переменной $ STY . Когда оболочка пытается установить заголовок окна (используя один из этих методов ) screen фиксирует эту попытку и сохраняет ее во что-то, что он сбивает с толку, называет «жесткое состояние окна», которое действительно имеет escape, который вы можете использовать: % h .

Итак, если у вас есть заголовок или панель жесткого состояния, настроенная на включение % h , а оболочка пытается установить заголовок окна на $ STY , тогда % h будет заменено именем сеанса, когда отобразится полоса.

18
ответ дан 28 November 2019 в 18:07
поделиться
Другие вопросы по тегам:

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