Как запустить скрипт, когда заголовок установлен на вкладку терминала?

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

Вкладка терминала> Задать заголовок

например, IRC, API Codebase, API Logs, Server1 и т. д.

Я хочу сделать что-то на вкладке, основываясь на заголовке вкладки. например

  1. Когда я устанавливаю «API Codebase», он должен перейти к моей кодовой базе и активировать соответствующую виртуальную среду python
  2. Когда я устанавливаю «IRC», он должен запускать irssi
  3. Когда я устанавливаю «Server1», он должен запустить команду ssh для подключения к серверу

и так далее.

Как это может быть сделано?

  • Выполнить команду в другом терминале
  • Могу ли я создать новую вкладку терминала Gnome, не оставив символическую ссылку на каталог?
  • Как отключить автоматическую прокрутку в терминале gnome?
  • Не интерпретировать возврат каретки (`\ 0D`) в моем терминале
  • гном классический терминал мыши двойной щелчок выбор
  • Как выполнить файл в отдельном терминале gnome в Linux
  • Запуск истинных нескольких экземпляров процесса gnome-terminal
  • Gnome Terminal - кнопка для запуска команды
  • 2 Solutions collect form web for “Как запустить скрипт, когда заголовок установлен на вкладку терминала?”

    Я бы сделал это несколько иначе. Вместо ручной настройки заголовка вкладки создайте функцию, которая устанавливает заголовок и запускает нужную команду. Добавьте эту функцию (адаптированную отсюда ) к вашему ~/.bashrc (если вы используете bash):

     function set-title() { if [[ -z "$ORIG" ]]; then ORIG=$PS1 fi TITLE="\[\e]2;$@\a\]" ## Do different things depending on the string passed case "$@" in "API Codebase") echo cd ~/codebase echo python ... ;; "IRC") echo irssi ;; "Server1") echo ssh server1 ;; esac PS1="${ORIG}${TITLE}" } 

    Насколько я знаю, невозможно проверить состояние терминала из процесса в оболочке.

    Но даже если бы вы могли, изменение поведения на основе названия терминала было бы очень подверженным ошибкам. Нет простого способа проверить наличие орфографических ошибок или что-то в этом роде. Это также не очень масштабируемо – у вас будет одна команда do_something_based_on_title , которая просто будет расти по мере добавления функций.

    Вместо одного массивного сценария set-title заставьте каждую команду отвечать за настройку собственного названия терминала при запуске. Вы можете сделать это легко с помощью псевдонимов, например (поместите это в свой .bashrc или аналогичный).

     set_title() { echo -e "\e]0;$*\a" } alias apic='set_title "API Codebase"; command_for_api_codebase' alias irc='set_title "IRC"; irssi' alias server1='set_title "Server1"; ssh server1' 

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

    Linux и Unix - лучшая ОС в мире.