Linux shell test,[...] 命令

语法:

    test[expression]

    [ [expression] ]

用途:

    为了测试Shell脚本里的条件,通过退出状态返回其结果。要特别注意的是:

    这个命令的第二种形式,方括号根据字母意义逐字地输入,且必须与括起来的

    expression 以空白隔开。

行为模式:

    test用了测试文件属性、比较字符串及比较数字。

警告

    POSIX风格的表达式只是在真是系统上是可用表达式的一个子集。需留意可移植性的问题。

    除了极旧的UNIX系统外,test都已内置于Shell中。由于内置命令会比外部命令先被找到,

    所以,要写一个简单的测试程序并将其执行文件命名为test会有点麻烦。这种情况下你必须以

    ./test 引用这样的程序(假设它们在当前目录内)。

主要选项与表达式

    运算符                  如果。。。。则为真 

    string                 string 不是null

    -b file                 file是块设备文件

    -c file                 file是字符设备文件

    -d file                 file是目录

    -e file                 file存在

    -f file                  file为一般文件

    -g file                 file有设置它的setgid位

    -h file                 file是一符号链接

    -L file                 file是一符号链接(等同于 -h)

    -n string            string是非null

    -p file                 file是一命名的管道(FIFO文件)

    -r file                  file是可读的

    -S file                 file是socket

    -s file                 file不是空的

    -t n                     文件描述符n指向一终端

    -u file                 file有设置它的setuid位

    -w file                 file是可写入的

    -x file                  file是可执行的,或file是可被查找的目录

    -z string             string为null

    s1 = s2              字符串s1与s2相同

    s1 != s2             字符串s1与s2不相同

    n1 -eq n2           整数n1等于n2

    n1 -ne n2           整数n1不等于n2

    n1 -lt n2              n1小于n2

    n1 -gt n2             n1大于n2

    n1 -le n2             n1小于或等于n2

    n1 -ge n2            n1大于或等于n2


POSIX的test算法

参数             参数值                                                                   结果

0                                                                                                 退出状态为伪(1)

````````````````````````````````````````````````````````````````````````````````````````````````````````````

1                  如果$1非null                                                        退出状态为真(0)

                     如果$1为null                                                        退出状态为伪(1)

·············································································································

2                如果$1为!                                                             否定单一参数测试的结果,$2

                  如果$1为一元运算符                                          运算符的测试结果

                  其他情况                                                                未定义

————————————————————————————————————

3                如果$2为二元运算符                                           运算符的测试结果

                  如果$1为!                                                              否定双参数测试的结果,$2  $3

                  如果$1是(且$3是)                                                单一参数测试的结果,$2(XSI)

                  其他情况                                                                未定义

------------------------------------------------------------------------------------------------------------------

4               如果$1为!                                                                否定三个参数测试的结果,$2  $3  $4

                 如果$1是(且$4是)                                                  两参数测试的结果,$2   $3(XSI)

                 其他情况                                                                  未定义

---------------------------------------------------------------------------------------------------------------------

>4                                                                                              未定义



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值