Shell 脚本的条件测试与比较

本文详细介绍了Shell脚本中的条件测试,包括test命令、中括号[]、双中括号[][]以及双小括号(())的用法。内容涵盖文件测试表达式、字符串测试表达式、整数二元比较操作符以及逻辑操作符。通过实例解析了各种条件测试的差异和应用场景。
摘要由CSDN通过智能技术生成

Shell 脚本的条件测试与比较

Shell 巩固和复习系列笔记,立个 Flag,之后不定时更新相关工作上可能遇到的 Shell 应用场景。

1. Shell脚本的条件测试

在 bash 各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结果执行不同的操作,有时也会与if等条件语句相结合,来完成测试判断,以减少程序运行的错误。

执行条件测试表达后通常会返回“真”或“假”,就像执行命令后的返回值为 0 表示真,非 0 表示假一样。

条件测试常用语法

条件测试语法 说明
语法1:test <测试表达式> 利用 test 命令进行条件测试表达式的方法,test 与表达式至少隔一个空格
语法2:[ <测试表达式> ] 通过[](单括号)进行条件测试表达式的方法,与 test 命令用法相同,边界与表达式至少隔一个空格
语法3:[[ <测试表达式> ]] 通过[[]](双中括号)进行条件测试表达式的方法,边界与表达式至少隔一个空格
语法4:((<测试表达式>)) 通过(())(双小括号)进行条件测试表达式的方法,一般用于if语句,(())与表达式不需要留空格

说明:

  • 语法1中的 test 命令和语法 2 中的[]等价,[[]]为扩展的 test 命令,(()) 常用于算数运算
  • [[]](双中括号)可以使用通配符进行模式匹配,区别于其他语法模式
  • &&||><等操作符可以用于 [[]] 中,但不能应用于 [] 中,在 [] 中一般用 -a-o-gt(整数)-lt(整数)等命令行参数代替操作符
  • 整数的关系运算,也可以使用 Shell 的算数运算符 (())

1.1 test条件测试

test 等价于[] ,三个基本作用就是判断文件、字符串、整数。支持使用与或非将表达式连接起来

test 中可用的比较运算符只有 ==!= ,两者都用于字符串比较的,不可用于整数比较,整数比较只能使用-eq-gt这种参数形式,如需要使用大于>小于<进行字符串的比较,必须加上转义符号如[ ab \< bc ]

[root@aurora study]# test -f test.txt && echo true || echo false
true

如果 test.txt 文件存在,输出 true,否则输出 false,-f 判断是否为普通文件

test -z “tuzaza” && echo 1 || echo 0

如果测试字符串的长度为 0 则输出 1,否则输出 0,-z判断字符串的长度是否为 0

Tips:关于 test 测试表达式的更多知识可以执行man test查看帮助

1.2 [](中括号)条件测试

 [ -f /home/study/test.txt ] && echo 1 || echo 0

如果 /home/study/test.txt 文件存在,则输出 1,否则输出 0

1.3 [[]](双中括号)条件测试

[[]] 支持字符串的模式匹配,使用=~等操作符支持 Shell 的正则表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值