#判断进程是否存在
#!/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