Bash : test 命令

test = = ]

检查字符串、比较整数和检查文件属性。本文将通过简单的示例介绍 test 命令的常见用法

检查字符串

判断字符串是否为空

检查字符串时,非空的字符串返回 true,空字符串或者没有参数都返回 false。

test ;

代码的输出结果为:

It

代码具有更清晰的含义:

test -n ;

代码的输出结果和上面一样。

一个空的字符串可以直接使用运算符 -z:

test -z ;

代码输出的结果仍然是:

It

判断字符串相等

支持两个运算符来判断字符串相等:= 和 ==。

abc= test == ;

代码的输出结果为:

You got same .

abc= test != ;

代码的输出结果为:

Your word is not .

代码会发现我们在引用变量时都用双引号包起来了,这是写 shell 脚本中的一个小技巧。尝试运行下面的代码

abc= test != $abc;

提示语法错误

test != hello xx

一个合法的 test 命令,所以脚本执行时就报错了!错误。所以使用双引号包裹变量是一种保护机制,可以提高脚本的健壮性。

支持整数间的比较操作,可用的运算符有 '-eq','-ne','-lt','-le','-gt','-ge'。

num= test -eq ;

代码的输出结果为:

num is .

n1 ------ge n2 : n1 大于或等于 n2

检查文件属性

检查文件的属性也是 test 常见用法。比如要检查一个文件的类型是不是普通文件,可以使用 -f 选项:

test.= test -f ;

代码的输出结果为:

It

一个重要的选项是 -d,它用来检查一个路径是不是目录:

= test -d ;

代码的输出结果为:

It

一个路径是否存在,可以使用 -e 运算符。它仅检查文件是否存在而不关心文件的具体类型。

文件检查运算符:

-b 文件存在并且是块设备文件-c 文件存在并且是字符设备文件-d 文件存在并且是一个目录。 -e 文件存在。 -f 文件存在并且是一般文件-g 文件存在并且设置了 setgid 位。 -h 文件存在并且是一个链接文件-p 文件存在并且是一个命名管道(FIFO)。 -r 文件存在并且是可读的。 -s 文件存在并且有内容-u 文件存在并且设置了 setuid。 - 文件存在并且是可写的。 -x 文件存在并且是可执行的。 -S : 文件存在并且是一个 socket。

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...