在linux shell编程中,比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。
注意:空格很重要。
要确保方括号的空格。
shell if语句:
if ....; then
....
elif ....; then
....
else
....
fi
含条件选择的shell脚本 对于不含变量的任务简单shell脚本一般能胜任。
但在执行一些决策任务时,就需要包含if/then的条件判断了。
shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。
基本的if条件命令选项:
几乎所有的判断都可以用这些比较运算符实现。
脚本中常用-f命令选项在执行某一文件之前检查它是否存在。
这里分享二个shell if else语句的例子。
1、使用shell if else判断文件是否存在
#!/bin/sh
# 判断文件是否存在
# link:www.jb200.com
YACCESS=`date -d yesterday +%Y%m%d`
FILE="access_$YACCESS.log.tgz"
cd /data/nginx/logs
if [ -f "$FILE" ];then
echo "OK"
else
echo "error $FILE" > error.log
mail -s "$FILE backup fail" test123@jb200.com <error.log
fi
2,清除相关文件,并按时间段记录日志
#!/bin/sh
# 清除相关文件,并按时间段记录日志
# link:www.jb200.com
#
DIR=/data/img_cache
DAY=`date +"%Y-%m-%d %H:%M"`
NUM=`ls $DIR |wc -l`
DIRNAME=`ls $DIR| grep leveldb | head -n 1 | awk '{print $NF}'`
if [[ $NUM -gt 3 ]];then
rm -rf $DIR/$DIRNAME
echo "---------$DAY----($DIR)-----------------------" >> /tmp/img_cache.log
echo "$DIRNAME Deleted successful" >> /tmp/img_cache.log
fi