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
本文详细探讨了shell编程中的case语句,包括四个实战案例,涵盖其基本语法和不同用法,旨在帮助Linux和bash运维人员提升脚本编写能力。
&spm=1001.2101.3001.5002&articleId=114286135&d=1&t=3&u=cd3caa7bebc147bb8bd4fec4747857d1)
69

被折叠的 条评论
为什么被折叠?



