Возможно ли, чтобы сценарий bash автоматически обрабатывал запросы, которые обычно представляются пользователю с действиями по умолчанию? В настоящее время я использую сценарий bash для вызова внутреннего инструмента, который будет отображать подсказки пользователю (с запросом «Да / Нет») для выполнения действий, однако сценарий, который я пишу, должен быть полностью автономным, поэтому Мне нужен способ отправить Y|N
в приглашение, чтобы программа продолжила выполнение. Это возможно?
110
yes
для этого: unix.stackexchange.com/questions/47344/…Ответы:
Это не «автозаполнение», это автоматизация. Один из распространенных инструментов для этих целей называется « Ожидание» .
Вы также можете обойтись простым вводом по трубопроводу из
yes
.источник
yes
по конвейеру помогло, к счастью, все подсказки в любом случае требовали только «y». Спасибо.Yes | command
может работать не всегда. Если это просто для установки, то я решил,-y
что это лучший и предпочтительный вариант.Простой
Это позволяет вам передавать в сценарий любую последовательность «Y» или «N».
источник
N
- либо , я бы использовал этот метод, но мне нужны были только Y, поэтому я пошелyes
. Жаль, что я не могу принять два ответа, так как они оба правильные.N
, теперь у вас есть хороший способ сделать это."Y N"
качестве ввода для первого приглашения и зависает во втором приглашении, ожидая, пока я его завершу. Я попытался заменить пробелы на новые строки, но это тоже не сработало, все равно выдал буквальную строку в подсказку.printf 'y\ny\ny\n' | ./your_script
. Таким образом, вы вручную вставляете новую строку для каждой ожидаемой записи.printf '%s\n' Y Y N N Y N Y Y N
помещает символы новой строки между элементами, но без одной большой строки формата.Я обнаружил, что лучший способ отправить ввод - это использовать cat и текстовый файл для передачи любого ввода, который вам нужен.
источник
Если у вас есть только Y для отправки:
Если у вас есть только N для отправки:
источник
В моей ситуации мне нужно было отвечать на некоторые вопросы без «Да» или «Нет», но с текстом или пробелом. Я обнаружил, что лучший способ сделать это в моей ситуации - создать файл сценария оболочки. В моем случае я назвал его autocomplete.sh
Мне нужно было ответить на несколько вопросов для экспортера схемы доктрины, поэтому мой файл выглядел так.
- Это только пример -
Что мне нравится в этой стратегии, так это то, что вы можете комментировать свои ответы, а использование EOF - это пустая строка (ответ по умолчанию). Кстати, у этого инструмента экспорта есть собственный JSON-аналог для ответа на эти вопросы, но я понял это после того, как сделал это =).
чтобы запустить скрипт, просто перейдите в нужный каталог и запустите его
'sh autocomplete.sh'
в терминале.Короче говоря, используя << EOL & EOF в сочетании со строками возврата, вы можете ответить на каждый вопрос приглашения по мере необходимости. Каждая новая строка - это новый ответ.
Мой пример просто показывает, как это можно сделать с комментариями, также используя символ `, чтобы вы запомнили каждый шаг.
Обратите внимание на другое преимущество этого метода: вы можете ответить, используя не только «Да» или «Нет» ... фактически, вы можете отвечать пробелами!
Надеюсь, это кому-то поможет.
источник
Для этого есть специальная встроенная утилита - « да ».
Чтобы ответить на все вопросы одним и тем же ответом, вы можете запустить
Или вы можете поместить его в свой сценарий, чтобы получить конкретный ответ на каждый вопрос
источник