Terminal.app: как прочитать заголовок окна терминала


3

Я видел много вопросов о том, как установить имя вкладки (или окна), но как его получить? У меня есть терминал настройки для открытия 8 вкладок, каждая вкладка имеет собственное имя (dev1, dev2, ... dev8). Есть ли способ для сценария оболочки определить, в какой вкладке он находится (прочитать имя вкладки?)


1
Аналогичный вопрос о stackoverflow
Гленн Джекман

Ответы:


0

Это работает на моей коробке Fedora, но у меня нет Mac для проверки:

xprop -id $WINDOWID | grep '^WM_NAME(STRING)' | cut -d\" -f2

1
Моя OS X 10.8 не поставляется с xpropустановленным.
Арджан

xpropявляется частью системы X window, которая больше не устанавливается с macOS. В любом случае, это не поможет, так как Terminal не является приложением X.
Крис Пейдж

0

Если ничего не помогает, то AppleScript на помощь:

title=`osascript -e 'tell application "Terminal" to  get name of front window'`
echo $title

Будьте осторожны при использовании of front windowпри использовании нескольких окон. Это выведет неверные результаты при переключении на другую вкладку через 5 секунд:

sleep 5; osascript -e 'tell application "Terminal" to  get name of front window'

(Поэтому я надеюсь, что кто-то может дать вам более легкий путь.)


В общем, при написании сценариев для приложения «Терминал» внутри терминала вы должны получить текущее tty-устройство и найти соответствующее ему окно. Например, вы можете получить путь к устройству tty с помощью ttyкоманды.
Крис Пейдж

0

Существует последовательность управления для запроса заголовка окна, которая соответствует последовательности для установки заголовка; однако он не поддерживается Терминалом и по умолчанию отключен в XTerm (и я предполагаю, что другие эмуляторы терминала) по соображениям безопасности / конфиденциальности.

Документация XTerm для управляющих последовательностей для установки / получения заголовка окна:

http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Commands

Использование сценариев приложения, как в ответе Арджана, работает, но только в том случае, если удаленная программа находится на том же компьютере, и, в отличие от управляющей последовательности, сценарии имеют правила безопасности, такие как требование аутентификации, если процессы отправителя и получателя не имеют одного владельца / пользователь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.