shell基础(七)-条件语句

王朝学院·作者佚名  2016-05-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

shell基础(七)-条件语句条件语句在编写脚本经常遇到;用于处理逻辑问题。

一 IF 语句

if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句: if ... fi 语句; if ... else ... fi 语句; if ... elif ... else ... fi 语句。

例如: 就拿a=10;b=20来举例

>1. if ... fi 语句 : if01.sh #!/bin/sh a=10 b=20 if [ $a -lt $b ];then #$a小于$b echo "10 is less then 20" fi >2.if ... else ... fi 语句 :if02.sh #!/bin/sh a=10 b=20 if [ $a -lt $b ];then echo "10 is less then 20" else echo "10 is not less then 20" fi >3.if ... elif ... else ... fi 语句 :if03.sh #!/bin/sh a=10 b=20 if [ $a -lt $b ];then echo "10 is less then 20" elif [ $a -eq $b ];then echo "10 is equal to 20" else echo "10 is not less then 20" #我没找到好点的编辑器,我是用ue fi

二 case 语句

#case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。语法格式: case值in 模式1) 命令1 ... ;; 模式2) 命令2 ... ;; esac

case工作方式如上所示。取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令

下面的脚本提示输入1到4,与每一种模式进行匹配:

case01.sh #!/bin/sh read -n1 -p "please input your number: " num case $num in 1) echo "you select 1" ;; 2) echo "you select 2" ;; 3) echo "you select 3" ;; 4) echo "you select 4" ;; *) echo "you select other" ;; esac

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航