Моделирование нажатия клавиши ENTER в скрипте bash

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

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

5 ответов


echo -ne '\n' | <yourfinecommandhere>

или воспользоваться неявной новой строкой, которую генерирует echo (спасибо Marcin)

echo | <yourfinecommandhere>

Вы можете найти yes команда полезна.

посмотреть man yes


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

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

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


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

# yes "" | someCommand

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