Вы можете использовать пространства имен Linux , чтобы изолировать процесс сборки от сети. Для этого можно просто использовать команду unshare
. Однако это также предотвратит подключение процесса сборки к локальному хосту через TCP/IP. Разрешить процессу сборки только подключаться к локальному хосту немного сложнее, подробно здесь .
Обратите внимание, что для всего вышеперечисленного потребуется root-доступ. Если вы хотите, чтобы процесс сборки запускался от имени обычного пользователя, вы можете сделать так, чтобы команда запускалась в пространстве имен su build-user -c build-command
.
Я не понимаю, почему вы должны 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
в поле ввода -, это будет намного надежнее, чем попытка перевести произвольный текст в соответствующие нажатия клавиш.