linux shell 语言基础(1)比较测试操作符

一、查看linux 系统shell 支持

 执行命令 cat /etc/shells
$ cat /etc/shells
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/zsh

二、常用的文件测试操作符

-f  文件

判断文件存在且为普通文件为真,即测试表达式成立

-d 文件(目录) 判断文件存在且为目录文件为真,即测试表达式成立

-s 文件;大小

判断文件存在且为大小不为0则真,即测试表达式成立

-e 文件;

判断文件存在为真,即测试表达式成立,只要有文件就行,要区别与“-f”

-r 文件

判断文件存在且可读则真,即测试表达式成立

-w文件

判断文件存在且可写则真,即测试表达式成立

-x 文件 判断文件存在且可执行则真,即测试表达式成立
-l 文件 判断文件存在且为链接文件则真,即测试表达式成

注意:这些操作符合对于[[]]、[]、test几乎通用,更多man test

三、字符串测试操作

-z "字符串"

若字符串长度为0则真;[ -z "abc" ]&&echo 1||echo 0

-n "字符串"

若字符串长度不为0则真

"字符串1" = "字符串2"

两个字符串相等为真

"字符串1" != "字符串2"

两个字符串不相等为真

注意

字符串用双引号包含;比较符两端有空格

四、整数二元比较操作符

在[]及test比较    

  在(())和[[]]使用的比较符       说明
-eq ==或=

equal的缩写 相等

-ne  !=

no equal 的缩写 不相等

-gt   >  

 大于 gerater than

-ge                                                                                        >= 大于等于  gerater equla

-lt                                                                                                

<    小于    less than
-le                                                                                              <=  小于等于 less equal

注意:常用 [  $num1 -eq  $num2 ]   注意空格 (($num1>$num2))   无需空格常规的数学比较

五、逻辑连接符

在[]及test          

在(())和[[]]使用的比     说明
-a && and 与,两个为真则真
-o || or 或,两个有一个为真则真
! ! not 非,相反为真

六、条件测试与比较

1、test 测试表达式 常用                 test -f file && echo true||echo false

2、[ 测试表达式 ]  特别常用           [ -f file ]&& echo true||echo false

3、[[ 测试表达式  ]]                       [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true

[[ expr ]] 是bash中真正的条件判断语句,其语法更符合编程习惯 (比如 &&, || 的用法)

猜你喜欢

转载自blog.csdn.net/LINU_BW/article/details/84986543
今日推荐