#判断进程是否存在

#!/bin/sh
proceCopys = ps -fe|grep copys.sh |grep -v grep
#echo $proceCopys
if [ $proceCopys -ne 0 ]
then
echo "start process....."
else
nohup bash /root/copys.sh &
fi

 

#判断文件、文件夹是否存在

#文件夹不存在则创建
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” ]

整数比较
-eq     等于,如:if ["$a" -eq "$b" ]
-ne     不等于,如:if ["$a" -ne "$b" ]
-gt     大于,如:if ["$a" -gt "$b" ]
-ge    大于等于,如:if ["$a" -ge "$b" ]
-lt      小于,如:if ["$a" -lt "$b" ]
-le      小于等于,如:if ["$a" -le "$b" ]
<  小于(需要双括号),如:(("$a" < "$b"))
<=  小于等于(需要双括号),如:(("$a" <= "$b"))
>  大于(需要双括号),如:(("$a" > "$b"))
>=  大于等于(需要双括号),如:(("$a" >= "$b"))

#判断文件是否为空

#!/bin/bash
if [[ ! -s /var/log/ulog/tmp.out ]]
then
  echo empty
fi

eg: tmp.out  文件长度为0 打印 empty

-e 文件存在
-f file 是一个 regular 文件(不是目录或者设备文件)
-s 文件长度不为 0
-d 文件是个目录
-b 文件是个块设备(软盘,cdrom 等等)
-c 文件是个字符设备(键盘,modem,声卡等等)
-p 文件是个管道
-h 文件是个符号链接
-L 文件是个符号链接
-S 文件是个 socket
-t 关联到一个终端设备的文件描述符(这个选项一般都用来检测是否在一个给定脚本中的 stdin[-t0]或[-t1]是一个终端)
-r 文件具有读权限(对于用户)
-w 文件具有写权限(对于用户)
-x 文件具有执行权限(对于用户)

#判断文件中是否存在固定字符

if grep -q "books" /var/log/ulog
then
  echo "ulog文件中如果存在‘books’....就执行"
fi