Shell 结构化命令

条件判断语句:

格式:[ 判断内容 ]

注意:内容和[ ]之间有空格 (0为thue ,非0为false)

常见的条件判断:

字符串比较:

  •   =   !=   <   >
  • -n   长度是否不为0
  • -z    长度是否为0

注意使用 <  和  >  必须在前面加一个转义符

整数的比较:

  • -lt     小于
  • -le    小于等于
  • -eq    等于
  • -gt     大于
  • -ge    大于等于
  • -ne    不等于

权限的判断:

  • -r    读
  • -w   写
  • -x   执行
  • -s   为空

文件类型的判断:

  • -f  文件存在且是一个常规文件
  • -e  文件存在
  • -d  文件存在并且是一个目录

if-then 语句

单分支语句:

格式一:

格式二: 

注意: if中的判定是通过该命令的退出状态码决定(0  运行then   非0  不运行then)

多分支语句:

结构一:

 结构二:

 

 text 命令 用来测试的一系列参数和值

  • text   默认为 false
  • text  字符串  测试是否有内容

复合条件测试

  • [ condition1 ] && [ condition2 ]
  • [ condition1 ] || [ condition2 ]

双括号 可以中使用高级数学表达式

(( expression ))

 双方括号 拥有双括号的功能,新加了 模式匹配

在模式匹配中,可以定义一个正则表达式(有些shell不支持双方括号)
后面章节会了解

case 流程控制

格式:

 

for循环

注意:当列表值中存在单引号时,结果会发生错误

 解决方法:

  • 使用转义字符(反斜线)来将单引号转义
  • 使用双引号来定义用到单引号的值

 

 

 IFS 内部字段分隔符(用于获取文件内容)

bash shell 会把下面三个当作字段分割符:

  • 空格
  • 制表符
  • 换行符

修改 IFS: IFS=$' 符号  ' 使之只识别 ' '内的符号(可以同时设置多个符号)

 格式二:(与C语言for相似)

 

while循环

 until工作方式与while相反

退出状态码不为0 才会执行内容

break  退出循环

break  n   可以选择跳出的循环层数(n默认为1)

continue  跳出本次循环

处理循环后的数据

可以在done后添加重定向和管道

read 读取控制台输入

read [选项] (变量)

选项功能
-p指定读取值的提示符
-t指定读取值时的等待时间(秒)
-d后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
-n 后跟一个数字,定义输入文本的长度,很实用。
-r屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了
-s输入的数据不在显示器中显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值