Имитация нажатия клавиши ENTER в скрипте bash - PullRequest
80 голосов
/ 07 июня 2011

Я создал действительно простой скрипт bash, который запускает несколько команд.одна из этих команд требует ввода данных пользователем во время выполнения.то есть он спрашивает пользователя: «Вы хотите бла-бла-бла?», я хочу просто отправить на него нажатие клавиши ввода, чтобы скрипт был полностью автоматизирован.

Мне не придется ждатьввода или чего-либо еще во время выполнения, достаточно просто отправить нажатие клавиши, а буфер ввода обработает все остальное.

Ответы [ 5 ]

116 голосов
/ 07 июня 2011
echo -ne '\n' | <yourfinecommandhere>

или воспользоваться неявным переводом строки, который генерирует эхо (спасибо Марсину)

echo | <yourfinecommandhere>

Теперь мы можем просто использовать параметр --sk:

--sk, --skip-keypress Не ждите нажатия клавиши после каждого теста

т.е. sudo rkhunter --sk --checkall

37 голосов
/ 07 июня 2011

Возможно, команда yes окажется полезной.

См. man yes

25 голосов
/ 31 августа 2016

Вы можете просто использовать да .

# yes "" | someCommand
21 голосов
/ 11 апреля 2016

Вот пример использования с использованием expect:

#!/usr/bin/expect
set timeout 360
spawn my_command # Replace with your command.
expect "Do you want to continue?" { send "\r" }

Проверка: man expect для получения дополнительной информации.

11 голосов
/ 07 июня 2011

Вы можете использовать ожидайте ( человек ожидает идет с примерами).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...