shell 脚本(二)

目录

一、条件语句

 1、测试  test和[ ]

 2、比较整数数值

 3、字符串比较

 4、逻辑测试(短路运算)

实验一:​编辑

 实验二:

 5、双中括号 [[ expression ]] 

6、( ) { } 批量执行

二、if语句

   1、if语句的结构

三、case


一、条件语句

 1、测试  test和[ ]

 测试文件的表达式是否成立。格式一:test +选项 + 对象 ;格式二 :[ 条件表达式 ] ,注意两边要加空格,用echo $?返回结果。

  选项:-d:测试是否为目录
             -e:测试目录或文件是否存在
             -f:测试是否为文件
             -r:测试当前用户是否有权限读取
            -w:测试当前用户是否有权限写入
             -x:测试当前用户是否有权限执行
             -L: 测试是否为软连接文件

 2、比较整数数值

 书写格式:[  整数1  -操作符  整数2  ]

 -eq:第一个数等于(Equal)第二个数

 -ne:第一个数不等于(Not Equal)第二个数

 -gt:第一个数大于(Greater Than)第二个数

  -lt:第一个数小于(Lesser Than)第二个数

 -le:第一个数小于或等于(Lesser or Equal)第二个数

 -ge:第一个数大于或等于(Greater or Equal)第二个数

 

 3、字符串比较

 常用的测试操作符 :

 = :字符串内容相同

 !=:字符串内容不同,! 号表示相反的意思

 -z:字符串内容为空

 -n: 字符是否存在

 书写格式:

[ 字符串1 = 字符串2 ]  比较两个字符串内容是否相同

[ 字符串1 != 字符串2 ] 比较两个字符串内容是否不相同

[ -z 字符串 ] 显示字符串是否为空

[ -n 字符串 ] 显示字符是否存在

 

 4、逻辑测试(短路运算)

格式1:[ 表达式1 ]  操作符  [ 表达式2 ] ...

格式2:命令1  操作符  命令2 ...

常见条件:

-a或 &&:短路且,表示“而且”。第一个是真,第二个也是真,全真才为真;第一个为假,整                  个就为假,不用执行后面的操作。

-o或 ||:短路或,表示“或者”,一真即为真。第一个是假才会执行第二个;第一个为真,就                 不会执行第二个。

实验一:

 实验二:

 5、双中括号 [[ expression ]] 

 用法:

  ①[[   字符串 ==  通配符   ]]  :表示左侧字符串是否和右侧通配符所表达的内容相同,用echo $?查看;

  ②[[   字符串  =~  正则表达式   ]]  :表示左侧字符串是否和右侧正则表达式所表达的内容相同,用echo $?查看;

6、( ) { } 批量执行

 (CMD1;CMD2;...)和 { CMD1;CMD2;...; } 都可以将多个命令组合在一起,批量执行。

二、if语句

   1、if语句的结构

   ①单分支结构:执行到“语句判断”开始判断,如果是则会执行语句,如果不是就直接结束。

   if        判断条件

   then  条件为真的分支代码

   fi       结束

  实验:

   ②双分支结构:执行到“语句判断”开始判断,如果是则会执行语句1,如果不是就执行语句2,然后再结束。

  if  判断条件

  then  条件为真的分支代码

  else  条件为假的分支代码

  fi  结束

   

      实验一:

   实验二:

  ③多分支结构

  if  判断条件1

  then  条件1为真的分支代码

  elif  判断条件2

  then  条件2为真的分支代码

  elif  判断条件3

  then  条件3为真的分支代码

  ........

  else  以上条件都为假的分支代码(托底)

  fi  结束

  实验:

三、case

case结构:

case     变量值     in

条件判断1)

                 命令序列1

                 ;;

条件判断2)

                 命令序2

                 ;;

           ...........

* )

      默认命令序列

esac

case支持glob风格的通配符:
*  任意长度任意字符
?  任意单个字符
[0-9]  指定范围内的任意单个字符
|    表示或者,如: a|b

实验:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值