Имя сессии экрана Showing GNU и заголовок окна в приглашении оболочки

UNIX является сильная ОС, основывайтесь на саунд-дизайне, который оказывался успешным больше 40 лет (это - почти вечность в информатике). Центральная технология основана на языке C и несметном числе небольших программ: команды UNIX. Базовая философия была получена в итоге McIlroy:

Запишите программы, которые делают одну вещь и делают это хорошо. Запишите программы для сотрудничества. Запишите программы для обработки текстовых потоков, потому что это - универсальный интерфейс.

Больше на UNIX философия может быть найдена в E.S.Raymond "Искусство Программирования UNIX".

10
19.09.2011, 03:18
3 ответа

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

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

"Во время создания" означает это, если Вы перенумеровываете окно (использующий экран number команда), оболочка не будет сказана об изменении, и $WINDOW все еще совпадет с первым числом окна.

Вы могли использовать что-то как:

PS1='\u@\h(${STY}:${WINDOW}):\w$ '
13
27.01.2020, 20:01
  • 1
    Прекрасный! Это - то, что я искал. BTW, существует способ получить заголовок окна вместо числа окна? –  brandizzi 19.09.2011, 04:13
  • 2
    Не то, чтобы я знаю о, нет никакого API для экрана, и когда Вы даете команды нет никакого вывода - он переходит к текущему окну на экране. Например, screen -xr 2466 -X windows. –  Arcege 19.09.2011, 04:26
  • 3
    Хотя это, вероятно, подпадает под случай изменения нумерации, есть ли способ получить доступ к имени окна, если это установлено с Ctrl-a A ? –  Thalis K. 05.07.2015, 15:44
  • 4
    , Если GNU screen был скомпилирован с -Q (запрос) опция, затем можно выполнить некоторые команды, такой как title и windows и имейте дисплей данных к stdout, однако, без запаздывающей новой строки. –  Arcege 06.07.2015, 20:38

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

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

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

примечания:

  • при первом запуске screen -Q ждет ответного нажатия клавиши
  • я устанавливаю заголовок окна с CA CA, а затем укажите мой .profile для обновления приглашения
1
27.01.2020, 20:01

Я всегда использую точные названия сеансов экрана. Затем я могу добавить STY env var экрана с удаленным числовым идентификатором (благодаря dimo414 )на PS1. Я не украшаю его фигурными скобками или чем-то еще, потому что я не всегда в сеансе. Простой пример:

PS1='\u@\h ${STY#[0-9]*.} \w$ '
4
27.01.2020, 20:01

Теги

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