shell编程之条件语句

tes命令:

测试特定的表达式是否成,当条件成了时,测试语句的返回值为0,否则为其他数值

格式1:test 条件表达式

格式2:[ 条件表达式 ] 注:中括号内前后要有空格

文件测试:

格式:[ 操作符 文件或目录 ]

常用的测试操作符:

-d:测试是否为目录

-e:测试目录或文件是否存在

-f:测试是否为文件

-r:测试当前用户是否有权限读取

-w:测试当前用户是否有权限写入

-x:测试当前用户是否有权限执行

shell编程之条件语句_第1张图片

判断单个文件最常用的是‘-f’选项,在比较两个文件是 ,我们常用的选项有:

-nt: 判断文件A是否比文件B新

-ot:判断文件A是否比文件B旧

-ef:判断两个文件是否为同一个文件,用来判断两个文件是否指向同一个inode.

整数值比较:

[ 整数1 操作符 整数2 ]

常用的测试操作符:

-eq:等于

-ne:不等于

-lt:小于

-gt:大于

-le:小于或等于

-ge:大于或等于

shell编程之条件语句_第2张图片

字符串比较:

格式1:[ 字符串1 = 字符串2 ]

:[ 字符串1 != 字符串2 ]

格式2:[ -z 字符串]

常用的测试操作符:

=:字符串内容相同

!=:字符串内容不同,!号表示相反的意思

-z : 字符串内容为空

逻辑测试:

格式1:[ 表达式1 ] 操作符 [ 表达式2 ]...

格式2:命令1 操作符 命令2...

常用的测试操作符:

-a或&&:逻辑与,“而且”的意思

-o或||:逻辑或,“或者”的意思

!:逻辑否(取反)

shell编程之条件语句_第3张图片

[ -d /etc ]etc是否存在 &&且 [ -r /etc ]etc是否可读 两个条件都成立才能执行 echo "You can open it"{有一个条件不成立后面就不执行}

[ -d /etc ]etc是否存在 ||或 [ -r /etc ]etc是否可读,两个条件一个成立 就所有条件都满足 可以执行后面的echo 'ok'.