shell学习--[、test测试的使用

来源:互联网 发布:日本女朋友体验 知乎 编辑:程序博客网 时间:2024/05/17 04:51

一、在shell中,测试会设置返回的状态,test是一个内置命令,test会根据expr表达式的求值结果返回真或者假,同时也可以使用方括号[],test expr和[ expr ]是等价的,可以使用$?来检查返回值。
-o 操作符允许测试利用 set -o 选项 设置的各种 shell 选项,如果设置了该选项,则返回 True (0),否则返回 False (1)


1、文件判断
若判断符合则返回true,判断不符合则为false

-e 文件名         #文件存在则为真-r 文件名         #文件存在且可读则为真-w 文件名         #文件存在且可写则为真-x 文件名         #文件存在且可执行则为真-s 文件名         #文件存在且长度不为0则为真-d 文件名         #文件存在且为目录则为真-f 文件名         #文件存在且为普通文件则为真-c 文件名         #文件存在且为字符型特殊文件则为真-b 文件名         #文件存在且为块特殊文件则为真

2、数字判断

test num1 -eq num2       #num1=num2则为真test num1 -ne num2       #num1!=num2时为真test num1 -gt num2       #num1>num2时为真test num1 -ge num2       #num1>=num2时为真test num1 -lt num2       #num1<num2时为真test num1 -le num2       #num1<=num2时为真

3、两个文件比对的测试

-nt   #测试 file1 是否比 file2 更新。修改日期将用于这次和下次比较。-ot      #测试 file1 是否比 file2 旧。-ef      #测试 file1 是不是 file2 的硬链接。

4、字符串判断

#字符串比较:str1 = str2            #str1=str2时为真str1 != str2           #str1!=str2时为真-z str1                #str1的长度为0的话返回真-n str1                #str1长度不位0的话返回真

注意:
shell中会用到<和>操作符进行重定向,在使用<、>进行字符串的大小比较的时候需要进行转义=>(\<和>)
[]进行判断的时候[ “abc” > “def” ]中括号与字符串中间的空格必须存在!
这里写图片描述

二、(( )) 和 [[ ]]

(( ))复合命令 计算算术表达式,如果表达式求值为 0,则设置退出状态为 1;如果求值为非 0 值,则设置为 0。不需要对 (( 和 )) 之间的操作符转义。算术只对整数进行。除 0 会产生错误,但不会产生溢出。可以执行 C 语言中常见的算术、逻辑和位操作。 let 命令也能执行一个或多个算术表达式。它通常用来为算术变量分配值。

这里写图片描述

运行结果:
这里写图片描述

0 0
原创粉丝点击