Как напечатать что-нибудь с помощью xdotool?

Вы можете использовать пространства имен Linux , чтобы изолировать процесс сборки от сети. Для этого можно просто использовать команду unshare. Однако это также предотвратит подключение процесса сборки к локальному хосту через TCP/IP. Разрешить процессу сборки только подключаться к локальному хосту немного сложнее, подробно здесь .

Обратите внимание, что для всего вышеперечисленного потребуется root-доступ. Если вы хотите, чтобы процесс сборки запускался от имени обычного пользователя, вы можете сделать так, чтобы команда запускалась в пространстве имен su build-user -c build-command.

1
04.06.2021, 06:53
1 ответ

Я не понимаю, почему вы должны echoкоманду через stdin, вы можете использовать команду напрямую. Следующие работы для меня (протестированы с использованиемxev):

$ xdotool search Event
Defaulting to search window name, class, and classname
37748737
$ xdotool type --window 37748737 "'"
$ xdotool type --window 37748737 " "

Если вы настаиваете на передаче команды через stdin, то, по-видимому, xdotoolвыполняет собственный синтаксический анализ, поэтому вам следует избегать двойных кавычек:

$ echo "type --window 37748737 \"' \"" | xdotool -

Для более точного управления вы также можете использовать keyс символами клавиш, разделенными пробелом:

$ xdotool key --window 37748737 space a apostrophe

Обычно этого достаточно для любой автоматизации. Обратите внимание, что xdotoolимитирует нажатия и отпускания клавиш , а не символы .

Вы не описали свой вариант использования (, пожалуйста, отредактируйте свой вопрос и сделайте это, а также прочитайте о проблеме XY ), но если по какой-то причине вы хотите вставить переменный текст из какого-либо другого источника в В некоторых приложениях рассмотрите возможность использования буфера обмена (черезxclip)и имитации действия вставки с помощью xdotoolв поле ввода -, это будет намного надежнее, чем попытка перевести произвольный текст в соответствующие нажатия клавиш.

4
28.07.2021, 11:27

Теги

Похожие вопросы