首页 > 学院 > 操作系统 > 正文

shell基础(七)-条件语句

2024-06-28 13:23:56
字体:
来源:转载
供稿:网友
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



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表