Сценарий оболочки - перенаправление ввода при многократном запросе сценария оболочки - PullRequest
2 голосов
/ 07 апреля 2011

У нас есть сценарий оболочки, который ожидает ввода нескольких пользовательских данных при появлении запроса.Например, сначала он может попросить выполнить операцию.Когда этот ответ дается, он может запрашивать имя пользователя, затем пароль и т. Д. Мы хотим автоматизировать эту задачу, предоставляя входные данные с помощью перенаправления файлов, т.е. script

Ответы [ 3 ]

2 голосов
/ 07 апреля 2011

То, что вы можете использовать, это программа expect. Вы создаете для него скрипт, который сообщает, когда вводить какие-либо команды, которые он выполняет. Таким образом, вы можете автоматизировать именно то, с чем вы боретесь.

Больше информации о Google и здесь:

0 голосов
/ 24 апреля 2011

Спасибо всем за комментарии и ответы.Я пытался, кроме того, и это не сработало.Итак, я собираюсь упомянуть, что работало для нас.Вот наш рабочий процесс - 1. В командной строке linux введите команду, в нашем случае это была connect ().2. После того, как эта команда дана, скрипт запросит параметры для команды, такие как номер порта, сервер и т. Д., Мы должны были предоставить это вручную. 3. Затем мы снова получаем приглашение оболочки с другим вводом.В нашем случае мы смогли предоставить первую команду connect () в командной строке, используя перенаправление файлов, но передача параметров была проблемой.Решение, которое мы нашли, заключалось в том, чтобы предоставить параметры в скобках только для connect, т.е. наш входной файл для перенаправления содержал бы - connect ().Это сработало для нас.

0 голосов
/ 07 апреля 2011

Вы говорите: «Он читает только первую строку ввода».

То есть вы должны убить сценарий?

Есть ли выход?(особенно сообщения об ошибках)?

Вы перенаправляете STDERR в / dev / null или еще куда?Если так, удалите это.

Вот помощник с наибольшей вероятностью ... Измените скрипт верхнего уровня и добавьте set -vx во 2-й строке.Затем вы сможете увидеть, что было обработано, где оно остановилось, и, возможно, сформулировать теории о том, почему он не обрабатывает данные.

Есть ли вероятность того, что входной файл был создан в среде Windows и пара cr \ lf испортила ожидаемый ввод?

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...