大家好,今天给大家带来的是Shell编程之case语句的使用!
其实case语句还是很好理解的,在shell编程中,if语句有它的语法,函数也有它的语法,那么在我们shell编程中的case语句也是有它的语法的,如下:
case 变量名 in 值1) 指令1 ;; 值2) 指令2 ;; 值3) 指令3 ;; esac
在以上的代码中我们发现,以case开头,以esac结尾,就像我们的if语句,以if开头以fi结束时一样的。
例2:
case "找老公条件" in
家里有房子)
嫁给你...
;;
家庭有背景)
嫁给你...
;;
很努力吃苦)
那么我们可以先谈男女朋友..
;;
esac
好了接下来我们实践,其实语法就是上面的一些基本语法,那么我么在实践中来体会case到底有什么用
其实自我认为case语句更适合一些菜单选项的脚本,那么我们先用if语句写一个菜单脚本如下:
#!/bin/bash
#!/bin/bash
# Date: 4:42 2018-2-5
# Mail: ywyankerp@163.com
# Founder: <YanKai>
# Describe: This is a one - button installation service script
function CDAN(){
cat << yankerp
1.米饭
2.面条
3.包子
yankerp
}
CDAN
read -p 请您输入您今天要吃什么: NUM
expr $NUM + 1 &>/dev/null
if [ "$?" -ne 0 ]
then
echo "请您输入{1|2|3}"
exit 1
fi
if [ "$NUM" -eq 1 ]
then
echo "小二,来一碗米饭"
elif [ $NUM -eq 2 ]
then
echo "小二,来一碗面条"
elif [ "$NUM" -eq 3 ]
then
echo "小二,来一锅包子"
fi

首先我们看到我们上面的if语句,是不是感觉有点繁琐,那么接下来我们使用case语句来实现 如下:
#!/bin/bash
#!/bin/bash
# Date: 4:42 2018-2-5
# Mail: ywyankerp@163.com
# Founder: <YanKai>
# Describe: This is a one - button installation service script
function CDAN(){
cat << yankerp
1.米饭
2.面条
3.包子
yankerp
}
CDAN
read -p 请您输入您今天要吃什么: NUM
expr $NUM + 1 &>/dev/null
if [ "$?" -ne 0 ]
then
echo "请您输入{1|2|3}"
exit 1
fi
case $NUM in
1)
echo "小二,来一碗米饭"
;;
2)
echo "小二,来一碗面条"
;;
3)
echo "小二,来一锅包子"
;;
esac

剖析时刻:
#!/bin/bash
#!/bin/bash
# Date: 4:42 2018-2-5
# Mail: ywyankerp@163.com
# Founder: <YanKai>
# Describe: This is a one - button installation service script
function CDAN(){ #定义一个CDAN的函数
cat << yankerp
1.米饭
2.面条
3.包子
yankerp
}
CDAN #调用CDAN函数
read -p 请您输入您今天要吃什么: NUM #输入一条提示,然后把用户输入的字符串赋值给变量NUM
expr $NUM + 1 &>/dev/null # 使用数值运算命令expr来确定用户输入的是否是数值
if [ "$?" -ne 0 ] #如果用户输入的不是数值
then #那么
echo "请您输入{1|2|3}" #打印出 1 2 3
exit 1 #最后退出脚本
fi #结束if语句
case $NUM in #这里就是我们的case语句了,简单理解,在NUM这个变量中
1) #如果用户输入的是1
echo "小二,来一碗米饭" #那么就输出一行来一碗米饭
;;
2) #如果在NUM变量中用户输入的是2
echo "小二,来一碗面条" #那么继续打印此内容
;;
3) #以此类推
echo "小二,来一锅包子"
;;
esac #最后使用esac结束










