Как передать управление на другую вкладку терминала с помощью perl?

Я пытаюсь автоматизировать сценарий, в котором у меня открыто окно терминала с несколькими открытыми вкладками. Я могу перемещаться между вкладками, но моя проблема заключается в том, как передать управление на другую вкладку терминала, пока я запускаю свой perl-скрипт на другой вкладке. Пример: у меня открыт терминал с вкладками Tab1, Tab2, Tab3, Tab4, открытыми в одном и том же терминале, я запускаю скрипт perl в Tab3 и хочу передать некоторые команды на Tab1. Не могли бы вы сказать мне, как я могу это сделать ??

Я использую инструмент GUI для переключения между вкладками X11 :: GUITest и использую сочетания клавиш для переключения между вкладками, любые альтернативные предложения приветствуются, моя конечная цель - передать управление на другую вкладку.


person sams    schedule 01.12.2014    source источник


Ответы (1)


Главное, что нужно понять, это то, что на каждой вкладке работает другой экземпляр терминала, что более важно, другой экземпляр оболочки (просто подумал, что я упомяну, поскольку не похоже, что вы поняли это из вашего выбора слов). Таким образом, «передача управления» в таком сценарии, скорее всего, может повлечь за собой межпроцессное взаимодействие (IPC).

Теперь это открывает ряд возможностей. Например, вы можете запустить скрипт python/perl в целевой оболочке (вкладке) для прослушивания в сокете unix команд в виде текста, которые затем может выполнить скрипт. В Python для этого есть модули subprocess (call, Popen) и os (exec*). Если вам нужно передать управление обратно вызывающему процессу, я бы предложил использовать подпроцесс, так как вы также сможете отправлять коды возврата.

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

person JunkMechanic    schedule 02.12.2014