The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Динамическое изменение заголовков окон в screen
Как известно, screen умеет динамически менять заголовки окон, исследуя каждую
выводимую строку приложения на наличие esc-k. Вот этого в .bashrc достаточно,
чтобы научить screen менять заголовок в зависимости от запущенного приложения:

   if [[ "$TERM" == "screen" ]]; then
       SCREENTITLE='\[\ek\e\\\]'
       PS1="${SCREENTITLE}${PS1}"
   fi

Однако, очень хотелось заставить screen менять заголовок окна в зависимости от
того, на какой сервер/железку я зашел с помощью ssh или telnet. Сделал это
парой скриптов (оберток) для ssh и telnet, сохранил их в каталоге ~/.scripts и
добавил этот каталог в начало окружения PATH.

.scripts/telnet

   #!/bin/bash

   echo -ne "\ek->`echo $@|awk 'BEGIN{opts="-l-n-e"}
   {for(i=1;i<=NF;i++){if(substr($(i),1,1)=="-")
   {if(index(opts,$(i))!=0)i++;continue;}break;}print $(i);}'`\e\\" /usr/bin/telnet $@ < `tty` > `tty`

.scripts/ssh

   #!/bin/bash

   echo -ne "\ek->`echo $@ | awk 'BEGIN{opts="-b-c-D-e-F-I-i-L-l-m-O-o-p-R-S-W-w"}
   {for(i=1;i<=NF;i++){if(substr($(i),1,1)=="-")
   {if(index(opts,$(i))!=0)i++;continue;}break;}print $(i);}'`\e\\" /usr/bin/ssh $@ < `tty` > `tty`
 
28.06.2010 , Источник: http://trushkinv.livejournal.com/65...
Ключи: screen, window, shell, console / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Работа в консоли

Обсуждение [ RSS ]
 
  • 1.1, default, 09:53, 28/06/2010 [ответить] [смотреть все]
  • +/
    "оттабили" неудачно. последние команды, вызывающие telnet и ssh являются частью скриптов.
     
  • 1.2, Админ Веня, 10:47, 28/06/2010 [ответить] [смотреть все]
  • +/
    tmux вроде умеет изкаропки
     
  • 1.3, Аноним, 12:26, 28/06/2010 [ответить] [смотреть все]
  • +/
    Вместо usr bin ssh можно написать просто command ssh А вместо отдельных скри... весь текст скрыт [показать]
     
     
  • 2.4, default, 12:35, 28/06/2010 [^] [ответить] [смотреть все]  
  • +/
    Действительно, учитывая размер скриптов, лучше это дело реализовать в виде wrapper-функций шелла. Спасиб.
     
  • 2.5, Аноним, 12:48, 28/06/2010 [^] [ответить] [смотреть все]  
  • +/
    В моем примерчике, кстати, стираются опции с аргументами к ним не только в загол... весь текст скрыт [показать]
     
  • 1.6, Аноним, 03:05, 30/06/2010 [ответить] [смотреть все]  
  • +/
    if TERM screen then короче и посиксно Зачем так увлекаться башем ... весь текст скрыт [показать]
     
     
  • 2.7, Andrey Mitrofanov, 09:14, 30/06/2010 [^] [ответить] [смотреть все]  
  • +/
    >короче и посиксно. Зачем так увлекаться башем? ;)

    Угу, в .bashrc посиксность и переносимость -- Первое Дело! B*)

     
  • 1.8, splat_pack, 15:32, 02/07/2010 [ответить] [смотреть все]  
  • +/
    не кросплатформенно ни разу
     
     
  • 2.9, Аноним, 12:55, 05/07/2010 [^] [ответить] [смотреть все]  
  • +/
    bash, gawk и tty кросплатформенны А вот usr bin ssh - нет, нет никакой гаранти... весь текст скрыт [показать]
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor