Shell编程之IF条件语句各种案例演练

时间:2023-01-06 21:27:52
3. if条件语句学习


案例一,测试数字的大小
#!/bin/sh
NUM=100
if(($NUM > 4)) ; then
echo "this num is $NUM greater 4 !"

fi


必须以fi结尾



9.文件名为 if.sh
#!/bin/sh
#auto if test
#by lkp 2015-08-23


NUM1=100
NUM2=200


if (($NUM1 > $NUM2));then
echo "This $NUM1 greate $NUM2 !"
else
echo "This $NUM1 little $NUM2 !"

fi


执行:

/bin/bash if.sh

执行结果:

Shell编程之IF条件语句各种案例演练


案例二,测试目录是否存在,不存在则新建(注意,中括号之间必须要用空格)
#!/bin/sh
#judge dir exist 
if [ ! -d /data/20140515 ];then
mkdir -p /data/20140515
else
echo "This DIR is exist,Please exit .."
fi


逻辑运算符解析:
-f 判断文件是否存在 eg: if [ -f filename ]
-d 判断目录是否存在 eg: if [ -d dir ]
-eq 等于 应用于:整型比较
-ne 不等于 应用于:整型比较
-lt 小于 应用于:整型比较
-gt 大于 应用于:整型比较
-le 小于或等于 应用于:整型比较
-ge 大于或等于 应用于:整型比较
-a 双方都成立(and)逻辑表达式 -a 逻辑表达式
-o 单方成立(or)逻辑表达式 -o 逻辑表达式
-z 空字符串


10.文件名为 if1.sh
#!/bin/sh
#judge dir exist
#auto if test1
#by authors lkp 2015-08-23


DIR=/tmp/20140909


if [ ! -d $DIR ];then
mkdir =p $DIR
echo -e "\033[32mThis $DIR Create success!\033[0m"
else 
echo -e "\033[32mThis $DIR is exist,Please exit.\033[0m"
fi
在执行之前执行命令:
/bin/bash -n if1.sh
是验证和测试这个脚本是不是有问题,如果不输出,说明脚本是没有问题的。
执行结果:

Shell编程之IF条件语句各种案例演练

如果再执行一遍,执行结果如下:

Shell编程之IF条件语句各种案例演练


11.文件名为 if2.sh
#!/bin/sh
#judge dir exist
#auto if test2 files
#by authors lkp 2015-08-23


FILES=/tmp/test.txt


if [ ! -f $FILES ];then
echo "OK" >> $FILES
else
echo -e "\033[32m----------------------\033[1m"
cat $FILES
fi


执行:
/bin/bash if2.sh
再执行:
/bin/bash if2.sh
执行结果是:

Shell编程之IF条件语句各种案例演练

12.文件名为 scores.sh
#!/bin/bash
#by authors lkp 2015-08-23


scores=80;
if [[ $scores -gt 85 ]];then
echo "very good!";
elif [[ $scores -gt 75 ]];then
echo "good!";
elif [[ $scores -gt 60 ]];then
echo "pass!";
else
echo "no pass";
fi;


执行
/bin/bash scores.sh
执行结果:

Shell编程之IF条件语句各种案例演练


13.文件名为 scores.sh
#!/bin/bash
#by authors lkp 2015-08-23


scores=$1;
if [ -z $scores ];then
echo "usage: {$0 60|80.}"
exit
fi


if [[ $scores -gt 85 ]];then
echo "very good!";
elif [[ $scores -gt 75 ]];then
echo "good!";
elif [[ $scores -gt 60 ]];then
echo "pass!";
else
echo "no pass";
fi;


执行
/bin/bash scores.sh
执行结果:

Shell编程之IF条件语句各种案例演练