shell编程case详解(十二)

本文详细探讨了shell编程中的case语句,包括四个实战案例,涵盖其基本语法和不同用法,旨在帮助Linux和bash运维人员提升脚本编写能力。

1.case语句的语法

case  变量名   in
          值1)
                 指令1
          ;;
          值2)
                 指令2
          ;;
          值3)
                 指令3
          ;;
          *)
             默认
 esac

案例一:

#编写脚本,输入一个符号判断其为数字,字母或者为其他符号
#! /bin/bash
  
read -p "请输入字符,数字,字母或其他符号:" var

case $var in
        [a-z]|[A-Z])
                echo "输入的是一个字母"
                ;;
        [0-9])
                echo "输入的是一个数字"
                ;;
        *)
                echo "输入的是其他符号"
esac
结果:
[root@bogon ~]# vim case1.sh
[root@bogon ~]# chmod +x case1.sh
[root@bogon ~]# ./case1.sh 
请输入字符,数字,字母或其他符号:1
输入的是一个数字
[root@bogon ~]# ./case1.sh 
请输入字符,数字,字母或其他符号:e
输入的是一个字母
[root@bogon ~]# ./case1.sh 
请输入字符,数字,字母或其他符号:^
输入的是其他符号

案例二:

#! /bin/bash

#编写一个脚本,实现输入成绩判断成绩级别
#(90-100:A,80-89:B,70-79:C,60-69:D,0-59:E)

read -p "请输入一个成绩:" gread
case $gread in
        9[0-9]|100)
                echo "A"
                ;;
        8[0-9])
                echo "B"
                ;;
        7[0-9])
                echo "C"
                ;;
        6[0-9])
                echo "D"
                ;;
        *)
                echo "E"
esac
[root@bogon ~]# ./case2.sh 
请输入一个成绩:100
A
[root@bogon ~]# ./case2.sh 
请输入一个成绩:99
A
[root@bogon ~]# ./case2.sh 
请输入一个成绩:85
B
[root@bogon ~]# ./case2.sh 
请输入一个成绩:78
C
[root@bogon ~]# ./case2.sh 
请输入一个成绩:61
D
[root@bogon ~]# ./case2.sh 
请输入一个成绩:6
E
[root@bogon ~]# ./case2.sh
请输入一个成绩:45
E

案例三:

#! /bin/bash

#编写一个水果菜单
cat << EOF
----------水果菜单---------
          1.Apple
          2.pear
          3.banana
          4.cherry
---------------------------
EOF
read -p "请选择您想吃的水果:" var

case $var in
        1)
                echo Apple
                ;;
        2)
                echo pear
                ;;
        3)
                echo banana
                ;;
        4)
                echo cherry
                ;;
        *)
                echo "对不起,您想吃的水果没在此菜单上!!!"
esac
结果:
[root@bogon ~]# vim case3.sh
[root@bogon ~]# chmod +x case3.sh
[root@bogon ~]# ./case3.sh 
----------水果菜单---------
	  1.Apple
	  2.pear
	  3.banana
	  4.cherry
---------------------------
请选择您想吃的水果:1
Apple
[root@bogon ~]# ./case3.sh 
----------水果菜单---------
	  1.Apple
	  2.pear
	  3.banana
	  4.cherry
---------------------------
请选择您想吃的水果:2
pear
[root@bogon ~]# ./case3.sh 
----------水果菜单---------
	  1.Apple
	  2.pear
	  3.banana
	  4.cherry
---------------------------
请选择您想吃的水果:3
banana
[root@bogon ~]# ./case3.sh 
----------水果菜单---------
	  1.Apple
	  2.pear
	  3.banana
	  4.cherry
---------------------------
请选择您想吃的水果:4
cherry
[root@bogon ~]# ./case3.sh 
----------水果菜单---------
	  1.Apple
	  2.pear
	  3.banana
	  4.cherry
---------------------------
请选择您想吃的水果:5
对不起,您想吃的水果没在此菜单上!!!

案例四:

#! /bin/bash

#编写一个shell脚本,使用shell编写一个菜单,分别实现以下内容:
#显示当前目录内容
#切换目录
#创建文件
#编辑文件
#删除文件
#提示用户从键盘输入目录名称和文件名称

MYDATE=`date +%d/%m/%y`
THIS_HOST=`hostname -s`
USER=`whoami`

cat << EOF
----------------------------------------------------
User:$USER        Host:$THIS_HOST        Date:$MYDATE
----------------------------------------------------
        1. list you selected directory
        2. Change to you selected directory
        3. Create a new file
        4. Edit you selected file
        5. Remove you selected file
        q. Exit Menu
-----------------------------------------------------
EOF

read -p "请输入你的选择[1-5]|q:" var

case $var in
case $var in
        1)
                echo "list you selected directory"
                ls -l
                ;;
        2)
                echo "Change to you selected directory"
                cd /etc
                ;;
        3)
                echo "Create a new file"
                touch file_name #输入要创建的文件的文件名
                ;;
        4)
                echo "Edit you selected file"
                vim file_nmae #输入要编辑的文件的文件名
                ;;
        5)
                echo "Remove you selected file"
                rm -r file_name  #输入删除的文件名
                ;;
        6)
                echo "exit"
esac                                      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值