shell if语句格式详解

1. if语句的基本格式

大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。注意这里的空格很重要。要确保方括号的空格。

if ....;then

  ....

elif ....;then

  ....

else

  ....

fi

2. 一些常用的选项

[ -f "somefile" ] :判断是否是一个文件

[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限

[ -n "$var" ] :判断$var变量是否有值

[ "$a" = "$b" ] :判断$a和$b是否相等

    -r file     用户可读为真

  -w file     用户可写为真

  -x file     用户可执行为真

  -f file     文件为正规文件为真

  -d file     文件为目录为真

  -c file     文件为字符特殊文件为真

  -b file     文件为块特殊文件为真

  -s file     文件大小非0时为真

-t file     当文件描述符(默认为1)指定的设备为终端时为真

 

3. 一个例子---判断文件呢是否存在

 

##################################################################

#判断文件是否存在

###################################################################

 

#!/bin/sh

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"[email protected] <error.log

fi

你可能感兴趣的:(shell,if)