if 条件判断
基本语法:
1:单分支:
if [ 判断条件 ]; then
符合该条件执行的语句
fi
2:多分支:
if [ 判断条件1 ]; then
符合该条件1执行的语句
elif [ 判断条件2 ]; then
符合该条件2执行的语句
elif [ 判断条件3 ]; then
符合该条件3执行的语句
else
符合该条件执行的语句
fi
注意:if 和else分支都不能为空,必须要有内容。一个if要对应一个fi结尾。
#!/bin/sh #test for if by sunny at 2013 read -p "请输入你的成绩:" m if [ $m -ge 90 ]; then echo "$m, very good!" elif [ $m -ge 70 -a $m -le 89 ];then echo "$m, good~" elif [ $m -ge 60 -a $m -le 79 ];then echo "$m, so so ~~" elif [ $m -lt 60 ];then echo "$m ?,this is bad" else echo "your input is wrong" fi [root@test65 script]# sh if.sh 请输入你的成绩:90 90, very good! [root@test65 script]# sh if.sh 请输入你的成绩:80 80, good~ [root@test65 script]# sh if.sh 请输入你的成绩:60 60, so so ~~ [root@test65 script]# sh if.sh 请输入你的成绩:50 50 ?,this is bad
常用判断:
[ -d /www ] 判断/www是否存在,不存在为false
[ -f file ] 判断file是否为普通文件
[ -e file ] 判断file是否存在
[ file1 -nt file2 ] file1是否比file2新(new than)
[ file1 -ot file2 ] file1是否比file2旧(old than)
-r、-w、-x表示文件是否有可读、可写、可执行权限(指运行这个脚本的用户)
例子:
#!/bin/sh #if test #by sunny 2012 #检查目录是否存在 if [ -e /data/www ];then echo "the dir is exist" else echo "the dir is none" mkdir -p /data/www echo -e " 33[32m create dir:/data/www 33[0m " fi sh if2.sh the dir is none create dir:/data/www