Skip to content

Latest commit

 

History

History
60 lines (50 loc) · 1.64 KB

case.md

File metadata and controls

60 lines (50 loc) · 1.64 KB

case

基本用法

 一个case commans in

每个选项使用)  这种方式

case $REPLY in
   0)  echo "Program terminated."
        exit
        ;;
        使用这种;;来完结每个序列的完结
    1)  echo "Hostname: $HOSTNAME"
        uptime
        ;;
    2)  df -h
        ;;
    3)  if [[ $(id -u) -eq 0 ]]; then
            echo "Home Space Utilization (All Users)"
            du -sh /home/*
        else
            echo "Home Space Utilization ($USER)"
            du -sh $HOME
        fi
        ;;
    *)  echo "Invalid entry" >&2
        exit 1
        ;;
esac
完全总结和if一样使用反向写法即可

所以看我写的总结

case word in
  pattern )
    ;;
esac

是有很多的patern的所以我给出列表:

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

我不说大家也应该知道最后的那个 *是相当于我们现代语言中的default这个功效的。

q|Q)这种类型就是在 )里面 加入| 也就是或的意思

当然这个或就是我们的或门,跟在通配符中的那个第一个必须错是不同的。

“;;&” 的语法允许 case 语句继续执行下一条测试,而不是简单地终止运行。

也就是说类似于js中的取消break的作用。