Основы программирования в Linux - Мэтью Нейл
Тут можно читать бесплатно Основы программирования в Linux - Мэтью Нейл. Жанр: Интернет издательство , год .
Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте knigi-for.me (knigi for me) или прочесть краткое содержание, предисловие (аннотацию),
описание и ознакомиться с отзывами (комментариями) о произведении.
Упражнение 2.6. Вариант 1: пользовательский ввод
Вы можете написать новую версию сценария проверки пользовательского ввода с помощью конструкции
case#!/bin/shecho "Is it morning? Please answer yes or no "read timeofdaycase "$timeofday" in yes) echo "Good Morning";; no ) echo "Good Afternoon";; y ) echo "Good Morning";; n ) echo "Good Afternoon";; * ) echo "Sorry, answer not recognized";;esacexit 0Как это работает
Когда выполняется оператор
casetimeofdaycase)Оператор
case**casecase*Упражнение 2.7. Вариант 3: объединение образцов
Предыдущая версия конструкции case, безусловно, элегантнее варианта с множественными операторами
if#!/bin/shecho "Is it morning? Please answer yes or no "read timeofday<i>case "$timeofday" in</i><i> yes | y | Yes | YES ) echo "Good Morning";;</i><i> n* | N*) echo "Good Afternoon";;</i><i> * ) echo "Sorry, answer not recognized";;</i><i>esac</i>exit 0Как это работает
Данный сценарий в операторе
casecase*nevern**Упражнение 2.8. Вариант 3: выполнение нескольких операторов
В заключение, для того чтобы сделать сценарий многократно используемым, вам необходимо использовать другое значение кода завершения в том случае, когда применяется образец по умолчанию для непонятного варианта ввода.
#!/bin/shecho "Is it -morning? Please answer yes or no"read timeofday<i>case "$timeofday" in</i><i> yes | y | Yes | YES )</i> echo "Good Morning"
<i> echo "Up bright and early this morning"</i><i> ;;</i><i> [nN]*)</i><i> echo "Good Afternoon"</i><i> ;;</i><i> *)</i><i> echo "Sorry, answer not recognized"</i><i> echo "Please answer yes or no"</i><i> exit 1</i><i> ;;</i><i>esac</i>exit 0Как это работает
Для демонстрации другого способа определения соответствия образцу в этом программном коде изменен вариант определения соответствия для ветви
nocase*)Примечание
Учтите, что сдвоенная точка с запятой
;;esac;;case