举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > shell test命令 Shell test命令

shell test命令 Shell test命令

2023-03-19 17:17 Linux教程

shell test命令 Shell test命令

shell test命令

shell test命令是一个用于检查文件属性的内置命令,它可以用来测试文件的各种属性,如文件是否存在、文件的大小、文件的权限等。它也可以用来测试字符串、数字和其它表达式的真假。

test 命令有两种形式:单中括号形式 [ ] 和双中括号形式 [[ ]]。单中括号形式是 POSIX 标准,而双中括号形式是 bash 的扩展格式。

[ expression ]  # 单中括号形式
[[ expression ]]  # 双中括号形式

test 命令有很多不同的选项:-b 检测文件是否存在并且是一个块特殊文件;-c 检测文件是否存在并且是一个字符特殊文件;-d 检测目录是否存在;-e 检测文件或目录是否存在;-f 检测文件或目录是否存在并且是一个常规文件;-g 检测文件或目录是否存在并检测其拥有者 ID 是否设置了 SGID 位。

[ -b FILE ]  # 测试 FILE 是不是一个块特殊文件 
[ -c FILE ]  # 测试 FILE 是不是一个字符特殊文件 
[ -d DIR ]   # 测试 DIR 是不是一个目录 
[ -e FILE ]  # 测试 FILE/DIR 是不是一个常规/特殊/目录/socket 等 
[ -f FILE ]  # 测试 FILE/DIR 是不是一个常规/特殊/目录/socket 等  
[ -g FILE ]  # 判定FILE的SGID位(set group id) 

Shell test命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。


数值测试

参数 说明
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真

实例演示:

num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo "两个数相等!"
else
    echo "两个数不相等!"
fi

输出结果:

两个数相等!

字符串测试

参数 说明
= 等于则为真
!= 不相等则为真
-z 字符串 字符串长度为零则为真
-n 字符串 字符串长度不为零则为真

实例演示:

num1=""
num2=""
if test num1=num2
then
    echo "两个字符串相等!"
else
    echo "两个字符串不相等!"
fi

输出结果:

两个字符串相等!

文件测试

参数 说明
-e 文件名 如果文件存在则为真
-r 文件名 如果文件存在且可读则为真
-w 文件名 如果文件存在且可写则为真
-x 文件名 如果文件存在且可执行则为真
-s 文件名 如果文件存在且至少有一个字符则为真
-d 文件名 如果文件存在且为目录则为真
-f 文件名 如果文件存在且为普通文件则为真
-c 文件名 如果文件存在且为字符型特殊文件则为真
-b 文件名 如果文件存在且为块特殊文件则为真

实例演示:

cd /bin
if test -e ./bash
then
    echo "文件已存在!"
else
    echo "文件不存在!"
fi

输出结果:

文件已存在!

另外,Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:"!"最高,"-a"次之,"-o"最低。例如:

cd /bin
if test -e ./notFile -o -e ./bash
then
    echo "有一个文件存在!"
else
    echo "两个文件都不存在"
fi

输出结果:

有一个文件存在!
阅读全文
以上是VUE中文网为你收集整理的shell test命令 Shell test命令全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们