【10】shell:条件判断 if、case

一、if

1.1、单分支

语法:

if [条件判断];then
	执行命令
fi

或者

if [条件判断]
then
	执行命令
fi

1.2、双分支

语法:

if [条件判断]
then
	执行命令1
else
	执行命令2
fi

1.3、多分支

语法:

if[条件判断1]
then
	执行命令1
elif [条件判断2]
then
	执行命令2
	
…省略更多条件...

else
	当所有条件都不成立时,最后执行此命令
fi

二、case


case 语句和 if…elif…else 语句一样都是多分支条件语句,不过和多分支 if 条件语句不同的是,case 语句只能判断一种条件关系,而 if 语句可以判断多种条件关系。

语法:

case $变量名 in
"1")
	如果变量的值等于值1,则执行命令1
;;
"2")
	如果变量的值等于值2,则执行命令2
;;

…省略其他分支…

*)
如果变量的值都不是以上的值,则执行此命令
;;
esac

这条语句需要注意以下内容:

  • case 语句会取出变量中的值,然后与语句体中的值逐一比较。如果数值符合,则执行对应的程序;如果数值不符,则依次比较下一个值;如果所有的值都不符合,则执行")"(""代表所有其他值)中的程序。
  • case 语句以"case"开头,以"esac"结尾
  • 在每个分支程序之后要以";;"(双分号)结尾,代表该程序段结束(千万不要忘记)。

注意,多分支 case 条件语句只能判断变量中的值到底是什么,而不能像多分支if语句那样,可以判断多个条件,所以多分支 case 条件语句更加适合单条件多分支的情况。比如,我们在系统中经常看到请选择"yes/no",或在命令的输出中选择是执行第一个选项,还是执行第二个选项(fdisk 命令)。在这些情况下,使用 case 最为适合。我们写一个选择"yes/no"的例子,命令如下:

[root@localhost ~]# vi sh/case.sh
#!/bin/bash
#判断用户输入
read -p "Please choose yes/no: " -t 30 cho
#在屏幕上输出"请选择yes/no",然后把用户选择赋予变量cho
case $cho in
#判断变量cho的值
    "yes")
    #如果是yes
        echo "Your choose is yes!"
        #则执行命令1
        ;;
    "no")
    #如果是no
        echo "Your choose is no!"
        #则执行命令2
        ;;
    *)
    #如果既不是yes,也不是no
    echo "Your choose is error!"
    #则执行此命令
    ;;
esac

解释一下脚本思路:请用户输入 yes 或 no,如果输入的是 yes,则输出"Your choose is yes!";如果输入的是 no,则输出"Your choose is no!";如果输入的是其他字符,则输出"Your choose is error!"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值