- Как в Bash реализовать «Нажмите любую кнопку для продолжения»
- Связанные статьи:
- Как использовать Xdotool для стимулирования щелчков мыши и нажатия клавиш в Linux
- Установка Xdotool
- Имитация нажатия клавиши
- Имитация нажатия клавиши с помощью клавиши-модификатора
- Имитация повторных клавиш / турбо / скорострельная стрельба
- Имитация ключевой последовательности
- Имитация щелчков мыши
- Получить активное окно и свернуть его
- Обратитесь к странице руководства
- Сопоставьте команды и сценарии Xdotool с сочетаниями клавиш
- Заключение
- Command to simulate keyboard input
- 2 Answers 2
- You must log in to answer this question.
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
Как в Bash реализовать «Нажмите любую кнопку для продолжения»
Иногда нужно приостановить вывод в скрипте, чтобы обратить внимание пользователя на информацию и убедиться, что пользователь увидел её (или имел возможность её увидеть).
В Bash это можно сделать с помощью утилиты read. Эта утилита читает строку из стандартного ввода.
read -p "Нажмите ENTER для продолжения"
Эта команда позволит пользователю продвинуться далее (а скрипт продолжит выполнение) после того, как пользователь нажмёт кнопку ENTER.
Если вам нужно, чтобы для продолжения можно было нажать любую кнопку, то используйте следующую конструкцию:
read -n 1 -s -r -p "Нажмите любую кнопку для продолжения"
В этой команде следующее значение опций:
-n определяет количество символов, после которого будет остановлено чтение. По умолчанию чтение останавливается при вводе разделителя строк (например, кнопкой ENTER). В нашем случае команда read перестаёт считывать вводимые данные после первого символа
-s скрывает пользовательский ввод
-r приводит к тому, что строка будет интерпретирована как «сырая» (без учёта экранирования обратными слэшами). То есть обратным слэшам не будет позволено экранировать символы
-p как и в первом примере, содержит сообщение, показываемое пользователю.
Связанные статьи:
Как использовать Xdotool для стимулирования щелчков мыши и нажатия клавиш в Linux
Xdotool — это бесплатный инструмент командной строки с открытым исходным кодом для имитации щелчков мыши и нажатия клавиш. В этой статье будет краткое руководство по использованию xdotool для автоматизации ввода с клавиатуры и мыши. Xdotool работает только на сервере отображения X, и нет поддержки Wayland (на момент написания этой статьи).
Установка Xdotool
Чтобы установить xdotool в Ubuntu, выполните следующую команду:
Чтобы установить xdotool в других дистрибутивах Linux, найдите термин «xdotool» в диспетчере пакетов. Xdotool включен в репозитории большинства дистрибутивов Linux.
Имитация нажатия клавиши
Вы можете использовать xdotool для имитации нажатия клавиши, выполнив команду ниже. Замените «n» на любую допустимую клавишу или символ в раскладке клавиатуры.
Обратите внимание, что приведенная выше команда будет имитировать как нажатие клавиши, так и отпускание клавиши одно за другим, и вы не заметите никакой задержки между этими событиями. Если вы хотите смоделировать их отдельно, используйте следующие команды:
$ xdotool keydown n
$ xdotool keyup n
Имитация нажатия клавиши с помощью клавиши-модификатора
Клавиши-модификаторы изменяют поведение нажатий клавиш при одновременном нажатии двух или более клавиш. E.грамм. , и так далее. Процесс выполнения комбинаций клавиш с помощью xdotool также очень похож:
Вы можете найти правильные названия клавиш клавиатуры, используя следующую команду:
Откроется маленькое окошко. Держите его в фокусе, затем нажмите любую клавишу. Вы получите имя ключа в выводе терминала.
Имитация повторных клавиш / турбо / скорострельная стрельба
Чтобы имитировать несколько нажатий клавиш в течение определенного периода времени, вам необходимо указать, сколько раз необходимо моделировать нажатия клавиш и задержку между каждым нажатием клавиши. Для этого запустите команду в следующем формате:
$ xdotool key —repeat 5 —delay 50 n
Замените значения переключателей «-repeat» и «-delay» (в миллисекундах) в соответствии с вашими требованиями. Обратите внимание, что у меня были проблемы с повторением, когда я установил задержку более 500 мс. Это может быть ошибкой или предполагаемым поведением, и если вы столкнулись с подобными проблемами, избегайте установки высоких значений задержки. Вы можете использовать операторы цикла «for» и «while», чтобы преодолеть это ограничение.
Приведенная ниже команда вводит клавишу «n» три раза с задержкой в 2 секунды между каждым нажатием клавиши.
$ для i в 1… 3; сделать xdotool key n; сон 2; Выполнено
Вы также можете использовать цикл while, чтобы многократно имитировать нажатия клавиш, пока цикл не будет прерван вручную с помощью ключ.
$ пока правда; сделать xdotool key n; сон 2; Выполнено
Имитация ключевой последовательности
Чтобы смоделировать несколько ключей один за другим, используйте команду в следующем формате:
Имитация щелчков мыши
Чтобы имитировать щелчок правой кнопкой мыши в текущем местоположении указателя, выполните следующую команду:
Замените «3» на любое число из приведенной ниже ссылки:
- 1 — Щелчок левой кнопкой мыши
- 2 — Щелчок средней кнопкой мыши
- 3 — Щелкните правой кнопкой мыши
- 4 — Колесо прокрутки вверх
- 5 — Колесико прокрутки вниз
Если вы хотите использовать другой набор координат, используйте команду в следующем формате:
$ xdotool mousemove 100 100 кликов 3
Замените «100» желаемыми координатами как «X» и «Y» в верхнем левом углу экрана.
Обратите внимание, что различные примеры, объясненные до сих пор с нажатиями клавиш, также могут использоваться с щелчками мыши.
Получить активное окно и свернуть его
Следующая команда получит идентификатор окна, которое в данный момент находится в фокусе, а затем свернет его:
$ xdotool getactivewindow windowminimize
Обратитесь к странице руководства
Xdotool включает множество опций, и вы можете использовать бесчисленное количество различных комбинаций для настройки поведения нажатий клавиш и щелчков мыши. Здесь невозможно охватить все варианты использования, вы можете обратиться к странице руководства, выполнив команду ниже:
Вы также можете получить доступ к странице руководства онлайн.
Сопоставьте команды и сценарии Xdotool с сочетаниями клавиш
Вы можете использовать графический интерфейс конфигурации сочетаний клавиш, доступный в системных настройках вашего дистрибутива, чтобы назначать простые команды xdotool пользовательским сочетаниям клавиш. В случае сложных и множественных операторов сохраните команды в скрипте, а затем сопоставьте скрипт с сочетанием клавиш.
Заключение
Xdotool — одна из лучших утилит, доступных для автоматизации ввода с клавиатуры и мыши в Linux. Вы можете запускать как простые макросы, так и сложные команды, объединяя несколько смоделированных входов.
Игры
SuperTuxKart — отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в.
Игры
Битва за Веснот — одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д.
Игры
Из множества существующих стратегических игр 0 A.D. удается выделиться как всеобъемлющее название и очень глубокая тактическая игра, несмотря на то, ч.
Свежие статьи об операционных системах. Множество интересных гайдов и полезных советов. Почувствуйте себя своим в мире современных технологий
Command to simulate keyboard input
Is there a command that exists that can simulate keypresses? I want to pipe some data to it to make it type into a GUI program for me.
2 Answers 2
To simulate a key press, use:
For example, to simulate pressing F2 :
To simulate pressing crtl + c :
To simulate pressing ctrl + c and then a Backspace :
xdotool key ctrl+c BackSpace
Check man xdotool to get more idea.
You might need to install the xdotool package first to use xdotool command.
What :key syntax is it to enter UP arrow key? Found it here as xdotool key Up askubuntu.com/q/382005/22308
#!/usr/bin/expect #set timeout 10 set clientName [lindex $argv 0]; set hostName [lindex $argv 1]; set passWord [lindex $argv 2]; spawn ssh "$hostName"; expect "Password:"; send "$passWord\r"; expect "$hostName"; send "cd /apps/bin\r"; expect " bin]";
You must log in to answer this question.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533
Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group.
This site is not affiliated with Linus Torvalds or The Open Group in any way.
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.