Я написал скрипт для изменения размеров окон, который требует ориентации и значения в виде дроби, например:
resize.sh -h 1/2
и работает как положено.
Я также добавил флаг -k
, что означает, что скрипт требует ввода данных пользователем, например:
resize.sh -k -h
и в сценарии:
read -rsn 2 fraction
, который я анализирую, чтобы получить значения для числителя и знаменателя.
Это прекрасно работает из командной строки, но идея заключается в том, чтобы связать resize.sh -k -h
с некоторой комбинацией клавиш и передать следующие две клавиши в качестве ввода. Но когда я запускаю скрипт с клавиатуры, он запускается как фоновый процесс, который не связан ни с одним tty, поэтому read не может получить свой ввод. Есть ли способ перенаправить глобальный ввод в фоновый процесс после запуска его с клавиатуры.
Что я пробовал до сих пор:
Перенаправление в / proc / $$ / fd / 0, которое не сработало.
Redirectiong в настоящее время активный tty stdin для чтения, например так:
read -rsn 2 fraction < /dev/pts/0
, который действительно работал, но проблема в том, что не все окна являются терминальными, например веб-браузер.
Если мой вопрос неясен, пожалуйста, не стесняйтесь спрашивать дополнительные разъяснения или детали, и заранее спасибо:)