Правильный метод для хранения ввода данных пользователем в сценариях удара

Я хотел бы сделать чат-бота с помощью удара. И я просто задавался вопросом, знает ли кто-либо в сообществе о надлежащем / предпочтительный метод для хранения ввода данных пользователем как переменная в сценарии оболочки.

Например: если мой чат-бот не распознает запрос, выполненный к нему, существует ли способ попросить, чтобы пользователь дал программе корректный ответ в будущем и затем сохранил тот ответ как переменную, не имея необходимость вручную редактировать сценарий?

Возможно, с командой чтения или подобный?

0
задан 9 November 2018 в 04:29

2 ответа

Bash не является действительно предпочтительным языком для записи приложений высокого уровня. Его преимущества находятся во взаимодействии с системными командами и автоматизацией материала, не так очень в реализации сложной бизнес-логики или выполнении материала как сети. Вы сделали бы свою жизнь легче путем изучения более соответствующего языка для этого, как, например, Python. Так или иначе конечно, возможно сделать это с Bash, просто более трудным, специально для новичка.

Таким образом для возвращения к фактическому вопросу, да, можно использовать read окружите встроенный, чтобы запросить ввод данных пользователем и сохранить его в переменных оболочки, как:

read line 
echo "You said <$line>"

Выполненный пример, включая ввод данных пользователем:

Hello there                                    ← this is user input
You said <Hello there>                         ← this is the output

С этими двумя командами я сначала ожидаю одной строки ввода данных пользователем и храню его в переменной, которую я назвал $line. Затем я могу произвести переменную снова со второй командой.

Ввести help read получить полное описание read команда и ее доступные варианты.


Вы могли использовать это в цикле, чтобы проверить вход и продолжать спрашивать, пока ответ не приемлем:

while [[ "$my_color" != "blue" && "$my_color" != "red" ]] ; do 
    read -p "Pick blue or red: " my_color
done
echo "You picked $my_color."

Выполненный пример, включая ввод данных пользователем:

Pick blue or red: green
Pick blue or red: 
Pick blue or red: red
You picked red.

Существуют более изящные способы записать меню, которые предоставляют Вам выбор между многими предопределенными опциями хотя, например, использование select. Посмотрите, Как я могу создать избранное меню в сценарии оболочки? для большего количества информации об этом.

0
ответ дан 27 October 2019 в 04:51

Можно проверить некоторые руководства, как сделать избранное меню в ударе. Однако существует правило I, и другие devs/sys администраторы следуют, и это следующее: Если сценарий является дольше, чем 200 строками, переписывают в python/perl/whatever просто не, колотят. Bash не достаточно хорош для приложений высшего класса, он хорошо для взаимодействия с командами базовой системы, но это - все.

0
ответ дан 27 October 2019 в 04:51

Другие вопросы по тегам:

Похожие вопросы: