Обработка подтверждений ввода в сценариях оболочки Linux - PullRequest
13 голосов
/ 14 сентября 2011

Я пишу Linux Shell Script, чтобы автоматизировать несколько вещей, которые я делаю в Ubuntu 11.04.

По сути, я пишу сценарий оболочки для установки NGINX, MySQL и PHP, а затем настраиваю все. Я знаю, как сделать все через командную строку.

Однако я не знаю, как я собираюсь обрабатывать части, где процесс запрашивает пользовательский ввод. Например, некоторые вещи, которые я устанавливаю с помощью apt-get, запрашивают у вас подтверждение, т. Е. (Y) es или (N) o.

Как именно я обработал бы автоматическое подтверждение в сценарии оболочки, т. Е. Чтобы автоматически подтверждать Да или Нет при запросе?

Ответы [ 4 ]

15 голосов
/ 14 сентября 2011

yes | ./script ответит y за все.

В противном случае напишите скрипт, который напечатает ответы, которые вы хотите, например:

 echo N
 echo Y
 echo Y
4 голосов
/ 14 сентября 2011

Обычно вы можете вызывать такие интерактивные программы с возможностью автоматического ответа «да» на все вопросы.Например, вы можете позвонить apt-get с -y.Со страницы руководства:

-y, --yes, --assume-yes Автоматически да на запросы;примите «да» как ответ на все запросы и запустите неинтерактивно.

2 голосов
/ 14 сентября 2011

Для Apt правильным ответом является «предварительное заполнение» вашей базы данных debconf с правильными параметрами. Если Debconf находит ответ из своей базы данных, он не спрашивает. См. Также http://www.debian -administration.org / статьи / 394

1 голос
/ 14 сентября 2011

Попробуйте Ожидайте это может быть то, что вы ищете.

...