shell脚本之case 的用法

shell脚本之case


case是Shell脚本中的一种控制流语句,它允许根据变量的值选择不同的执行路径。case语句的语法如下:

case word in  
    pattern [| pattern]...) command-list ;;  
    pattern [| pattern]...) command-list ;;  
    ...  
    *) command-list ;;  
esac

在这个语法中,word是一个要检查的字符串或变量。pattern是一个要与word进行匹配的模式,可以是一个字符串、正则表达式或者一个列表。如果word与某个模式匹配,那么将执行相应的command-list。

下面是一些使用case语句的示例:

1)字符串匹配

#!/bin/bash  
  
fruit="apple"  
  
case $fruit in  
    apple)  echo "It's an apple." ;;  
    banana) echo "It's a banana." ;;  
    *)      echo "It's an unknown fruit." ;;  
esac

在这个例子中,case语句检查变量fruit的值。如果值是"apple",则输出"It’s an apple.“;如果值是"banana”,则输出"It’s a banana.“;否则,输出"It’s an unknown fruit.”。
2.)正则表达式匹配

#!/bin/bash  
  
number=5  
  
case $number in  
    1|2|3)   echo "It's a small number." ;;  
    4|5|6)   echo "It's a medium number." ;;  
    7|8|9|10) echo "It's a large number." ;;  
    *)       echo "It's an unknown number." ;;  
esac

在这个例子中,case语句使用正则表达式来匹配变量number的值。如果值是1、2或3,则输出"It’s a small number.“;如果值是4、5或6,则输出"It’s a medium number.”;如果值是7、8、9或10,则输出"It’s a large number.“;否则,输出"It’s an unknown number.”。
3)列表匹配

#!/bin/bash  
  
color="red"  
  
case $color in  
    red|green|blue)   echo "It's a primary color." ;;  
    yellow|orange|purple) echo "It's a secondary color." ;;  
    *)       echo "It's an unknown color." ;;  
esac

在这个例子中,case语句使用一个列表来匹配变量color的值。如果值是"red"、“green"或"blue”,则输出"It’s a primary color.“;如果值是"yellow”、“orange"或"purple”,则输出"It’s a secondary color.“;否则,输出"It’s an unknown color.”。
4)使用通配符

#!/bin/bash  
  
file="example.txt"  
  
case $file in  
    *.txt)   echo "It's a text file." ;;  
    *.doc|*.docx) echo "It's a Word document." ;;  
    *.pdf)   echo "It's a PDF document." ;;  
    *)      echo "It's an unknown file type." ;;  
esac

在这个例子中,case语句使用通配符来匹配变量file的值。如果值是以".txt"结尾的字符串,则输出"It’s a text file.“;如果值是以”.doc"或".docx"结尾的字符串,则输出"It’s a Word document.“;如果值是以”.pdf"结尾的字符串,则输出"It’s a PDF document.“;否则,输出"It’s an unknown file type.”。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

付宇利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值