Shell编程七(test 命令)

Shell test 命令

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

1、数值测试

 

 

 示例:

 

代码中的 [] 执行基本的算数运算

 

result=$[a + b]等同于
result=`expr $a + $b `

 

 3、字符串测试

 

 

 示例:

 

 3、文件测试

 

示例:

 

 

 测试条件连接:与( -a )、或( -o )、非( ! ):优先级:

 ! 最高, -a 次之, -o 最低

示例:

 

 

 4、符号的含义

符号含义:

1. eq  (equal的缩写),表示等于为真

2. ne    (not equal的缩写),表示不等于为真

3. gt     (greater than的缩写),表示大于为真

4. ge  (greater&equal的缩写),表示大于等于为真

5. lt    (lower than的缩写),表示小于为真

6. le   (lower&equal的缩写),表示小于等于为真

5、shell 判断文件夹或文件是否存在

 

 

 

文件夹不存在则创建

if [ ! -d "/data/" ];then
  mkdir /data
  else
  echo "文件夹已经存在"
fi

文件存在则删除

if [ ! -f "/data/filename" ];then
  echo "文件不存在"
  else
  rm -f /data/filename
fi

判断文件夹是否存在

if [ -d "/data/" ];then
  echo "文件夹存在"
  else
  echo "文件夹不存在"
fi

判断文件是否存在

if [ -f "/data/filename" ];then
  echo "文件存在"
  else
  echo "文件不存在"
fi

文件比较符:
-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
-nt 判断file1是否比file2  [ "/data/file1" -nt "/data/file2" ]
-ot 判断file1是否比file2  [ "/data/file1" -ot "/data/file2" ]

 

 

posted @ 2021-01-09 19:08  水绿冰蓝  阅读(49)  评论(0)    收藏  举报