shell/条件测试

技术文档网 2021-04-15

测试语法

test condition
#或
[ condition ]

使用方括号时,要注意在条件两边加上空格。

文件测试

测试状态:

符号 释义
-d 是否是目录
-f 是否是文件
-L 是否是符号连接
-r 是否可读
-s 是否非空文件长度大于0
-w 是否可写
-u 是否文件有suid位设置
-x 是否可执行
$test -w test.txt
$[ -w test.txt ]
$echo $?
0

逻辑操作符

符号 释义
-a 逻辑与
-o 逻辑或
! 逻辑否
[ -w test.txt -a -x test.txt ]
[ -w test.txt -o -x test.txt ]

字符串测试

语法

test "string"
test "string1" operator "string2"
[ operator "string" ]
[ "string1" operator "string2" ]

字符串操作符

符号 释义
= 两字符串相等
!= 不相等
-z 空串
-n 非空串
[ $name = 'bill' ]
[ -z $name ]

数值测试

语法

test "num1" operator "num2"
[ "num1" operator "num2" ]

数值操作符

符号 释义
-eq 数值相等
-ne 数值不相等
-gt 第一个数大于第二个数
-lt 第一个数小于第二个数
-le 第一个数小于等于第二个数
-ge 第一个数大于等于第二个数
[ $num -eq "30" ]
[ "30" -lt "40" ]

算术操作

expr命令一般用于算术操作:

expr param1 operator param2

例如:

$expr 30 / 3
10

num = 1
num = `expr $num + 1`

##模式匹配
$value=accouts.doc
$expr $value : '\(.*\).doc'
accounts

相关文章

  1. wget批量下载gitlab uploads的文件和图片

    背景 下载gitlab的uploads文件,因为wiki可以直接clone,但是上传的文件和图片却无法下载(除非你有gitlab的服务器权限) 之前尝试用写Java工具下载 遍历所有的.md文件

  2. shell/设置外网访问权限

    /sbin/route add default gw 10.94.144.1 该网段的默认路由地址即路由器的地址为10.xxx.xxx.1 而路由器是可以访问外网的 由于静态路由在网卡启动时会删除,所

  3. shell/文件权限操作

    文件安全与权限 文件类型 d 目录 l 符号连接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 普通文件 改变权限 符号模式 chmod [who] operator

  4. shell/条件测试

    测试语法 test condition #或 [ condition ] 使用方括号时,要注意在条件两边加上空格。 文件测试 测试状态: 符号 释义 -d 是否是目录 -f 是否

  5. 常用shell命令

    常用命令 查找类 find / -name "export.sh" which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文

随机推荐

  1. wget批量下载gitlab uploads的文件和图片

    背景 下载gitlab的uploads文件,因为wiki可以直接clone,但是上传的文件和图片却无法下载(除非你有gitlab的服务器权限) 之前尝试用写Java工具下载 遍历所有的.md文件

  2. shell/设置外网访问权限

    /sbin/route add default gw 10.94.144.1 该网段的默认路由地址即路由器的地址为10.xxx.xxx.1 而路由器是可以访问外网的 由于静态路由在网卡启动时会删除,所

  3. shell/文件权限操作

    文件安全与权限 文件类型 d 目录 l 符号连接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 普通文件 改变权限 符号模式 chmod [who] operator

  4. shell/条件测试

    测试语法 test condition #或 [ condition ] 使用方括号时,要注意在条件两边加上空格。 文件测试 测试状态: 符号 释义 -d 是否是目录 -f 是否

  5. 常用shell命令

    常用命令 查找类 find / -name "export.sh" which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文