Самый простой и наиболее широко доступный метод для получения ввода данных пользователем при приглашении оболочки read
команда. Лучшим способом проиллюстрировать его использование является простая демонстрация:
while true; do
read -p "Do you wish to install this program?" yn
case $yn in
[Yy]* ) make install; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
Другой метод, на который указывает Steven Huwig, является Bash select
команда. Вот тот же пример с помощью select
:
echo "Do you wish to install this program?"
select yn in "Yes" "No"; do
case $yn in
Yes ) make install; break;;
No ) exit;;
esac
done
С select
Вы не должны санировать вход – это отображает доступный выбор, и Вы вводите число, соответствующее Вашему выбору. Это также циклично выполняется автоматически, таким образом, нет никакой потребности в while true
цикл, чтобы повторить, если они дают недопустимый вход.
кроме того, проверьте превосходный ответ F. Hauri.
Какая библиотека протоколирования лучше? упоминает следующее, из которых только два последних являются бесплатными.
Я знаю, что это не бесплатно, но стоит своих денег: CodeSite от Raize Software. Качество имеет свою цену! : -)
Мне всегда нравилось работать с CodeSite, особенно возможность добавлять в журнал практически любые типы объектов без огромного преобразования в строковый формат часто была очень полезной.
Опять же: не бесплатно, но того стоит. цена в золоте, если вы серьезно относитесь к ведению журналов и их просмотру производственного качества.
Marc
Я тоже большой поклонник CodeSite, но если вы ищете бесплатного, как насчет OutputDebugString с Delphi IDE или DebugView от SysInternals .
Другой альтернативой Codesite является Overseer , который имеет открытый исходный код и является частью проекта nexus , но является самостоятельным, поэтому не требует использования их фреймворк.