您的位置:首页 > 运维架构 > Linux

Linux命令之条件判断-case

2016-01-11 15:17 525 查看
case语句和判断语句[if...elif...else]功能类似;

当在逻辑判断比较简单的情况下,比后者的代码量要少许多.

匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。

语法:

var = xxx

case $var in 
value1 )
echo "input is value1"
;;
value2 )
echo "input is value2"
;;
valuen )
echo "input is valuen"
;;
* )
echo "i don't know"
;;

esac

说明:

1、星号(*)相当于其他语言中的default;

2、双分号(;;)是必须的,相当于java中的break;

3、竖线(|)用于分割多个模式,相当于or;

#从实战中学习

#!/bin/bash
###程序启动脚本
case $1 in
s | start )
echo "start..."
;;
stop | end )
echo "stop..."
;;
r | reload )
echo "reload..."
;;
*)
echo "Usage: $name [start|stop|reload]"
exit 1
;;
esac

#!/bin/bash
###忽略大小写
echo "Please input yes or no"
read var
case "$var" in
[yY][eE][sS] )
echo "input is yes"
;;
[nN][oO] )
echo "input is no"
;;
* )
echo "error input"
;;
esac

#!/bin/bash
#从键盘输入一个字符,判断该字符是否为字母、数字或者其他字符,并输出相应的提示信息
read -p "press a key," key
case $key in
[a-z] | [A-Z] )
echo "It's a letter."
;;
[0-9] )
echo "It's a number."
;;
* )
echo "other key."
;;
esac

#!/bin/sh
###判断操作系统类型
var=`uname -s`
case $var in
Linux )
echo "os is Linux"
;;
FreeBSD )
echo "os is FreeBSD"
;;
* )
echo "unknown os: $var"
;;
esac
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell case