您的位置:首页 > 运维架构 > Shell

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

2017-07-18 15:54 621 查看
bash下的单方括号和双方括号概念以及用法:

一、bash[ ] 单括号

[ ]两个符号左右都要有空格分隔

内部操作与操作变量之间要有空格: [ val−gt10]字符串比较,><要进行转义,>\<[]中字符串或者{}变量尽量使用”“双引号扩住,避免值未定义引用而出错。

[ ]中可以使用 -a -o进行逻辑运算

[ ]是bash的内置命令

下面列举几个单方括号的使用例子:





成功条件满足返回0,失败条件不满足返回1;



[]单括号可以用来做字符串测试,例如判断两个字符串是否相等;一个字符串是否为空,字符串不等,字符串的大小(注意要加转义字符\)

str1\str2 str1>str2



二、bash [[ ]] 双方括号

特点:

1、 [[ “ch”=”h” ]]内部操作符与操作变量之间要有空格

2、字符串比较中,可以直接使用> < 无需转义

3、 [[ ]]内部可以使用逻辑与 && 和逻辑或 ||

[ ]和[[ ]]都可以和!配合使用

优先级: ! > && > ||

逻辑运算符 < 关系运算符

关系运算符: < > \< > == != -eq -ne -gt -ge -lt -le

三、两者比较:

相对而言[[ ]]比[ ] 更好一些:

[[是bash程序的关键字,并不是一个命令,[[ ]]比[ ]更加通用,在[[ ]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。

支持字符串的模式匹配,使用=~操作时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串。

使用[[…]]条件判断结构,可以防止脚本中的许多逻辑错误。比如&&、||、<和>操作符可以正常存在于[[]]条件判断语句中,如果在单括号[]结构中会出现错误。

bash中把双括号中的表达式看做一个孤独的元素,并返回一个退出码状态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bash