首页 > 系统 > Linux > 正文

Shell编程之case语句实战(小结)

2019-10-26 18:56:33
字体:
来源:转载
供稿:网友

大家好,今天给大家带来的是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结束             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表