流程控制:case分支

bash的多选复合命令称为case。它的语法规则如下所示:

case word in
  [pattern [|pattern]...) commands ;; ]...
  esac

用case编写菜单读取shell脚本:

#!/bin/bash
#case-menu:a menu driven system information program
clear;
cat <<  _EOF_
please select:
a,Display System Information
b,Display Disk space
c,Display Home Space Utilization
q,Quit
_EOF_
read -p "Enter selection [a-c |q] >"
case $REPLY in
a) echo "Hostname:$HOSTNAME"
   uptime
;;

b) df -h
;;

c) if [[ $(id -u) -eq 0 ]]; then
     echo "Host Space Utilization(All Users)"
     du -sh /home/*
   else
     echo "Host Space Utilization($USER)"
     du -sh $HOME
   fi
;;

q) echo "Program terminated."
   exit
;;
esac

case命令检查一个变量值,在这个例子中,就是REPLY变量值,然后试图去匹配其中一个具体的模式。当找到与之相匹配的模式之后,就会执行与该模式相关的命令。若找到一个模式之后,就不会再继续寻找。

模式以一个“)”为终止符。下面是一些模式。

模式描述
a)若单词为”a”,则匹配
???)若单词只有三个字符,则匹配
*.txt若单词以”.txt”字符结尾,则匹配
*)匹配任意单词。把这个模式做为case命令的最后一个模式,是一个很好的做法,可以捕捉到任意一个与先前模式不匹配的数值;也就是说捕捉到任何可能的无效值

在markdown中生产表格的语法:

|模式|描述|
|-----|-----|
|a)|若单词为"a",则匹配|
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值