1. 程式人生 > >Shell程式設計之IF條件語句各種案例演練

Shell程式設計之IF條件語句各種案例演練

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

執行結果:


案例二,測試目錄是否存在,不存在則新建(注意,中括號之間必須要用空格)
#!/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
是驗證和測試這個指令碼是不是有問題,如果不輸出,說明指令碼是沒有問題的。
執行結果:


如果再執行一遍,執行結果如下:


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
執行結果是:


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
執行結果:


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
執行結果: