1、流程控制语句:case
(1)case语句格式
流程控制语句是用来实现对程序流程的选择、循环、转向和返回等进行控制。case 是其中的一个组成部分;
Case语句根据变量的不同进行取值比较,然后针对不同的取值分别执行不同的命令操作。
Case语句格式:
case 变量或表达式 in 变量或表达式 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 "查询" ;; 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 ~]#
B、myslq进程查看脚本
[root@test ~]# vi case-mysql.sh #!/bin/bash read -p "请输入start|stop|restart|status|选项:" i case $i in start) /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" ;; restart) /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 ~]#
个人公众号: