bash下的单方括号和双方括号

本文介绍了bash下单方括号([ ])和双方括号([[ ]])的概念、用法及其区别。单方括号作为内置命令,用于逻辑运算和字符串测试,需要空格分隔且字符串比较需转义。双方括号更通用,支持逻辑运算符&&和||,以及正则表达式匹配,避免了文件名扩展和单词分割问题,是bash的关键字。

bash下的单方括号和双方括号概念以及用法:

一、bash[ ] 单括号
[ ]两个符号左右都要有空格分隔
内部操作与操作变量之间要有空格: [ valgt10]><>\<[]{}变量尽量使用”“双引号扩住,避免值未定义引用而出错。
[ ]中可以使用 -a -o进行逻辑运算
[ ]是bash的内置命令
下面列举几个单方括号的使用例子:

这里写图片描述
这里写图片描述

成功条件满足返回0,失败条件不满足返回1;
这里写图片描述
[]单括号可以用来做字符串测试,例如判断两个字符串是否相等;一个字符串是否为空,字符串不等,字符串的大小(注意要加转义字符\)
str1\str2 str1>str2

这里写图片描述

二、bash [[ ]] 双方括号
特点:
1、 [[ “ch”=”h” ]]内部操作符与操作变量之间要有空格
2、字符串比较中,可以直接使用> < 无需转义
3、 [[ ]]内部可以使用逻辑与 && 和逻辑或 ||

[ ]和[[ ]]都可以和!配合使用
优先级: ! > && > ||
逻辑运算符 < 关系运算符
关系运算符: < > \< > == != -eq -ne -gt -ge -lt -le
三、两者比较:
相对而言[[ ]]比[ ] 更好一些:
[[是bash程序的关键字,并不是一个命令,[[ ]]比[ ]更加通用,在[[ ]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。
支持字符串的模式匹配,使用=~操作时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串。
使用[[…]]条件判断结构,可以防止脚本中的许多逻辑错误。比如&&、||、<和>操作符可以正常存在于[[]]条件判断语句中,如果在单括号[]结构中会出现错误。
bash中把双括号中的表达式看做一个孤独的元素,并返回一个退出码状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值