Используйте удаленную клавиатуру и мышь для управления локальным дисплеем в X Window System

Итак, я подумал о создании общей функции, чтобы спрашивать и проверять, пуста она или нет.

Это, наверное, хорошая идея.

Если это так, вызовите саму функцию рекурсивно, пока пользователь что-то не предоставит.

Это ... не такая уж хорошая идея. Просто используйте петлю.

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

Кроме того, вместо того, чтобы передавать имя переменной в качестве аргумента функции, вы можете просто выполнить присваивание в основной программе:

ask() {
        read -p "$1: " a
        while [ -z "$a" ] ; do
                echo "Please give a value" >&2
                read -p "$1: " a
        done
        echo "$a"
}

var=$(ask "please enter some value")    
echo "you gave $var"

Конечно, теперь мы должны перенаправить напоминание на stderr, потому что stdout назначен на переменная. Это то же самое, что read делает с подсказкой. Это также работает, скажем, в тире , который, похоже, не поддерживает косвенную ссылку $ {! X} .

1
04.10.2017, 01:59
1 ответ

Как отмечает @RalphRönnquist в комментарии, этого можно добиться, используяsynergy:

sudo apt-get install synergy

Он должен быть установлен на обоих компьютерах, затем на управляемом компьютере запускается клиент (synergyc),и компьютер, который должен совместно использовать свою клавиатуру/мышь, запускает сервер синергии, который затем должен быть настроен (через графический интерфейс пользователя ), чтобы позволить клиентскому компьютеру подключаться и определять, где находится область, занятая удаленным экраном. расширенный рабочий стол.

Существуют подробные руководства, подробно объясняющие процесс. этот для Raspberry Pi.

2
27.01.2020, 23:44

Теги

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