У меня есть сценарий bash, который использует read
команду для интерактивного чтения аргументов команд, например параметров да / нет. Есть ли способ вызвать этот сценарий в неинтерактивном сценарии, передавая значения параметров по умолчанию в качестве аргументов?
Это не просто один из вариантов, который я должен передать интерактивному сценарию.
bash
interactive
non-interactive
Сидхарт Шарма
источник
источник
Ответы:
Для более сложных задач есть
expect
( http://en.wikipedia.org/wiki/Expect ). Он в основном имитирует пользователя, вы можете написать сценарий, как реагировать на определенные выходные данные программы и связанные с ними вещи.Это также работает в таких случаях,
ssh
когда к нему запрещены пароли по конвейеру.источник
Много способов
направьте свой ввод
перенаправить из файла
используйте здесь документ (он может быть очень читаемым)
используйте здесь строку
источник
read
stdin, какую функцию вы можете использовать для того, что вы описали?Вы можете поместить данные в файл и перенаправить его следующим образом:
Данные для скрипта:
Выполнение скрипта:
источник
Просто хочу добавить еще один способ. Нашел его в другом месте, и это довольно просто. Скажем, я хочу передать «да» для всех запросов в командной строке для команды «execute_command», тогда я просто пропущу к нему «да».
Это будет использовать «да» в качестве ответа на все запросы «да / нет».
источник
Вы также можете использовать printf для передачи ввода в ваш скрипт.
источник
другой альтернативой может быть
Команда tee выводит полученный ввод на экран и одновременно сохраняет его в файл.
источник