Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Выполнение нескольких действий

В версиях колотить до 4.0 г., случаев позволяет выполнить только одно действие при успешном совпадении. После успешного совпадения команда завершится. Здесь мы видим скрипт, проверяющий персонажа:



#! / Bin / Баш


# case4-1: проверить персонажа


read -n 1 -p "Введите символ>" echo

case $ REPLY в

[[: upper:]]) echo «$ REPLY - это верхний регистр». ;;

[[: lower:]]) echo «$ REPLY - это нижний регистр». ;;

[[: alpha:]]) echo "'$ REPLY' является буквенным". ;;

[[: digit:]]) echo "'$ REPLY' - это цифра." ;; [[: graph:]]) echo "'$ REPLY' - видимый символ." ;;

[[: punct:]]) echo "$ REPLY - это знак препинания". ;; [[: space:]]) echo "'$ REPLY' - это пробельный символ." ;; [[: xdigit:]]) echo "$ REPLY - шестнадцатеричная цифра." ;;

ESAC

#! / Bin / Баш


# case4-1: проверить персонажа


read -n 1 -p "Введите символ>" echo

case $ REPLY в

[[: upper:]]) echo «$ REPLY - это верхний регистр». ;;

[[: lower:]]) echo «$ REPLY - это нижний регистр». ;;

[[: alpha:]]) echo "'$ REPLY' является буквенным". ;;

[[: digit:]]) echo "'$ REPLY' - это цифра." ;; [[: graph:]]) echo "'$ REPLY' - видимый символ." ;;

[[: punct:]]) echo "$ REPLY - это знак препинания". ;; [[: space:]]) echo "'$ REPLY' - это пробельный символ." ;; [[: xdigit:]]) echo "$ REPLY - шестнадцатеричная цифра." ;;

ESAC


Запуск этого скрипта дает следующее:



[я @ linuxbox ~] $ случай4-1

Введите символ> a

«а» - строчные буквы.

[я @ linuxbox ~] $ случай4-1

Введите символ> a

«а» - строчные буквы.


Сценарий работает по большей части, но не работает, если символ соответствует более чем одному из классов символов POSIX. Например, символ «a» - это строчная и буквенная буква, а также шестнадцатеричная цифра. В колотить до версии 4.0 не было возможности случаев для соответствия более чем одному тесту. Современные версии колотить, добавьте обозначение «;; &» к


завершать каждое действие, так что теперь мы можем сделать это:



#! / Bin / Баш


# case4-2: проверить персонажа


read -n 1 -p "Введите символ>" echo

case $ REPLY в

[[: upper:]]) echo «$ REPLY - это верхний регистр». ;; &

[[: lower:]]) echo «$ REPLY - это нижний регистр». ;; &

[[: alpha:]]) echo "'$ REPLY' является буквенным". ;; &

[[: digit:]]) echo "'$ REPLY' - это цифра." ;; & [[: graph:]]) echo "'$ REPLY' - видимый символ." ;; &

[[: punct:]]) echo "$ REPLY - это знак препинания". ;; & [[: space:]]) echo "'$ REPLY' - это пробельный символ." ;; & [[: xdigit:]]) echo "'$ REPLY' - шестнадцатеричная цифра." ;; &

ESAC

#! / Bin / Баш


# case4-2: проверить персонажа


read -n 1 -p "Введите символ>" echo

case $ REPLY в

[[: upper:]]) echo «$ REPLY - это верхний регистр». ;; &

[[: lower:]]) echo «$ REPLY - это нижний регистр». ;; &

[[: alpha:]]) echo "'$ REPLY' является буквенным". ;; &

[[: digit:]]) echo "'$ REPLY' - это цифра." ;; & [[: graph:]]) echo "'$ REPLY' - видимый символ." ;; &

[[: punct:]]) echo "$ REPLY - это знак препинания". ;; & [[: space:]]) echo "'$ REPLY' - это пробельный символ." ;; & [[: xdigit:]]) echo "'$ REPLY' - шестнадцатеричная цифра." ;; &

ESAC


Когда мы запускаем этот скрипт, мы получаем следующее:



[я @ linuxbox ~] $ случай4-2

Введите символ> a «а» - строчные буквы. «а» - это алфавит.

«а» - видимый символ. «а» - шестнадцатеричная цифра.

[я @ linuxbox ~] $ случай4-2

Введите символ> a «а» - строчные буквы. «а» - это алфавит.

«а» - видимый символ. «а» - шестнадцатеричная цифра.


Добавление синтаксиса «;; &» позволяет case перейти к следующему тесту, а не просто завершить его.


Лучшие облачные вычисления для ОС в OnWorks: