Имитация нажатия ENTER в bash script
Я создал действительно простой bash script, который запускает несколько команд.
одна из этих команд требует ввода пользователя во время выполнения. то есть спрашивает пользователя "хотите ли вы blah blah blah?", я хочу просто отправить вводное нажатие на это, чтобы script полностью автоматизировался.
Мне не нужно ждать ввода или чего-либо во время выполнения, достаточно его просто отправить нажатие клавиши, и буфер ввода будет обрабатывать остальные.
Ответы
Ответ 1
echo -ne '\n' | <yourfinecommandhere>
или воспользоваться неявным переводом строки, который генерирует эхо (спасибо Марсину)
echo | <yourfinecommandhere>
Теперь мы можем просто использовать --sk
:
--sk
, --skip-keypress
Не ждите нажатия клавиш после каждого теста
т.е. sudo rkhunter --sk --checkall
Ответ 2
Вы можете найти полезную команду yes
.
См. man yes
Ответ 3
Вы можете просто использовать yes.
# yes "" | someCommand
Ответ 4
Ниже приведен пример использования expect
:
#!/usr/bin/expect
set timeout 360
spawn my_command # Replace with your command.
expect "Do you want to continue?" { send "\r" }
Проверьте: man expect
для получения дополнительной информации.
Ответ 5
Вы можете использовать expect (man expect поставляется с примерами).