Bash测试----test, [], [[]], (())

版权声明:本文为博主原创文章,转载请注明出处 http://blog.csdn.net/u013961718 https://blog.csdn.net/u013961718/article/details/52935615

test 和 [ ]

test是一条内置命令, test 根据表达式expr 求值的结果返回 0(真)或 1(假),可以用echo $?查看返回的退出状态。[等价于test,即test expr 和 [ expr ] 是等价的。
test的三个基本作用是判断文件、判断字符串、判断整数。test中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq, -gt这种形式。注意:< 和 >在bash中表示重定向,所以如果要使用需要转义。

[[ ]]

[[ ]] 是bash的一个关键字,功能比test强大的多。支持字符串的模式匹配,字符串比较时可以把右边的作为一个模式(这是右边的字符串不加双引号的情况下。如果右边的字符串加了双引号,则认为是一个文本字符串。),而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。
[[ ]] 没有文件扩展和字符分割,但存在参数扩展和命令替换。
注意:使用[]和[[]]的时候不要吝啬空格,每一项两边都要有空格,[[ 1 == 2 ]]的结果为“假”,但[[ 1==2 ]]的结果为“真”!后一种显然是错的。
这里写图片描述

let 和 (( ))

let 和 (( )) 功能基本一样,主要进行算数运算,也可以进行整数比较。
如果表达式求值为 0,则设置退出状态为 1;如果求值为非 0 值,则设置退出状态为 0。

猜你喜欢

转载自blog.csdn.net/u013961718/article/details/52935615