一个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的作用。