shell study-9day - случай оператора управления потоком оболочки

1. Заявление об управлении потоком: case

( 1) Формат оператора case

Оператор управления потоком используется для управления выбором, циклом, поворотом и возвратом потока программы. корпус - одна из составляющих;

Оператор Case сравнивает значения в соответствии с разными переменными, а затем выполняет разные командные операции для разных значений .

Формат заявления case:

case переменная или выражение в 
переменной или выражении 1) 
последовательность команд 1 
;; 
переменная или выражение 2) 
последовательность команд 2 
;; 
…… 
*) 
последовательность 
команд по умолчанию esac

( 2) Процесс исполнения

Сначала используйте значение «переменной или выражения» для сравнения со значением 1. Если значение такое же, выполните последовательность команд после значения 1 до тех пор, пока оно не встретит двойную точку с запятой «;;», а затем перейдите к esac, что означает завершение ветвления;

Если значение не совпадает со значением 1, продолжите сравнение со значением 2, если значение такое же, выполните последовательность команд после значения 2, пока оно не встретит двойную точку с запятой «;;», и перейдите к esac, что означает конечную ветвь.

По аналогии, если совпадающее значение не найдено , последовательность команд после режима по умолчанию «*)» выполняется до тех пор, пока ветвление не завершится после того, как будет выполнено esac .

Меры предосторожности:

A. «Переменная или выражение» должно сопровождаться словом in, а значение каждой «переменной или выражения» должно заканчиваться закрывающей круглой скобкой. Значение может быть переменной или константой. После того, как совпадение обнаруживает, что значение соответствует определенному шаблону, все команды тем временем выполняются до конца ;;.

B. Значение в совпадении может состоять из нескольких значений, разделенных знаком «|».

( 3) Пример оператора case

[root @ test ~] # cat first-case.sh  
#! / bin / bash 
cat << eof 
1. Снять деньги 
2. Депозит 
3. Запрос 
4. 
Снять карту eof 
read -p "Пожалуйста, введите свой вариант:" num 
case $ num in  
1) 
        echo "вывести деньги" 
        ;; 
2) 
        echo "депонировать деньги" 
        ;; 
3) 
        echo "query" 
        ;; 
4) 
        echo "снять карту" 
        ;; 
*) 
        echo "введите правильный номер, чтобы выбрать, Допустимый диапазон 1–4 " 
esac 
[root @ test ~] #  
[root @ test ~] # sh first-case.sh 
1. Снять деньги 
2. Внести  деньги 
3. Запрос 
4.Возьмите карту 
Пожалуйста, введите свой выбор: 6 
Пожалуйста, введите правильный номер для выбора, допустимый диапазон: 1-4 
[root @ test ~] # sh first-case.sh 
1. Снять деньги  
2.Экономить деньги
3. Запрос 
4. Снять карту 
Пожалуйста, введите ваши варианты: 1 
Снять деньги 
[root @ test ~] #

Б. Сценарий просмотра процесса Myslq

[root @ test ~] # vi case-mysql.sh  
#! / bin / bash 
read -p "Пожалуйста, введите start | stop | restart | status | option:" я 
набираю $ i в 
начале) 
        /etc/init.d/ mysqld $ i 
        ps -ef | grep mysqld 
        echo "mysql start" 
        ;; 
stop) 
         /etc/init.d/mysqld $ i 
        ps -ef | grep mysqld 
        echo "mysql stop" 
        ;; 
перезапуск) 
         /etc/init.d/ mysqld $ i 
        ps -ef | grep mysqld 
        echo "mysql restart" 
        ;; 
status) 
         /etc/init.d/mysqld $ i 
        ;; 
*) 
        echo "Пожалуйста, введите правильный параметр" 
esac
root @ test ~] # sh case-mysql.sh 
请 输入 start | stop | restart | status | 选项: start 
root 2018 1 1 23:04 pts / 0 00:00:00 / bin / sh / usr / bin / mysqld_safe --datadir = / var / lib / mysql - socket = / var / lib / mysql / mysql.sock --pid-file = / var / run / mysqld / mysqld.pid --basedir = / usr --user = mysql 
mysql 2129 2018 3 23:04 pts / 0 00 : 00: 00 / usr / libexec / mysqld --basedir = / usr --datadir = / var / lib / mysql --user = mysql --log-error = / var / log / mysqld.log --pid-file = / var / run / mysqld / mysqld.pid --socket = / var / lib / mysql / mysql.sock 
root 2148 1985 0 23:04 pts / 0 00:00:00 grep mysqld 
mysql start 
[root @ test ~] #


Личный публичный номер:

image.png

рекомендация

отblog.51cto.com/13440764/2575379