test命令常见用法

test命令常见用法

test命令用法。功能:检查文件和比较值

  1)判断表达式

  if test  (表达式为真)

  if test !表达式为假

  test 表达式1 –a 表达式2                 两个表达式都为真

  test 表达式1 –o 表达式2                 两个表达式有一个为真

  2)判断字符串

  test –n 字符串                       字符串的长度非零

  test –z 字符串                       字符串的长度为零

  test 字符串1=字符串2                  字符串相等

扫描二维码关注公众号,回复: 7068167 查看本文章

  test 字符串1!=字符串2                 字符串不等

  3)判断整数

  test 整数1 –eq 整数2                 整数相等

  test 整数1 –ge 整数2                 整数1大于等于整数2

  test 整数1 –gt 整数2                 整数1大于整数2

  test 整数1 –le 整数2                 整数1小于等于整数2

  test 整数1 –lt 整数2                 整数1小于整数2

  test 整数1 –ne 整数2                 整数1不等于整数2

  4)判断文件

  test  File1 –nt  File2               文件1比文件2 新

  test  File1 –ot  File2               文件1比文件2 旧

  test –b File                       文件存在并且是块设备文件

  test –c File                       文件存在并且是字符设备文件

  test –d File                       文件存在并且是目录

  test –e File                       文件存在

  test –f File                       文件存在并且是正规文件

  test –h File                       文件存在并且是一个符号链接

  test –b File                       文件存在并且是块设备文件

  test –L File                       文件存在并且是一个符号链接

  test –r File                       文件存在并且可读

  test –s File                       文件存在并且是一个套接字

  test –w File                       文件存在并且可写

  test –x File                       文件存在并且可执行

Shell test 单中括号[] 双中括号[[]] 的区别

在写Shell脚本的时候,经常在写条件判断语句时不知道该用[] 还是 [[]],首先我们来看他们的类别:

[ 和test 是 Shell 的内部命令,而[[是Shell的关键字。

[ 和test 是相等的。

[[中使用&&||表示逻辑与和逻辑或。[中使用-a 和-o 表示逻辑与和逻辑或。

[[支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。

总结:

使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 && $a != 2 ]],如果不使用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ],bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。

猜你喜欢

转载自www.cnblogs.com/w520/p/11388409.html