Как да предам контрола на различен терминален раздел с помощта на 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