1. 程式人生 > >20.5shell腳本中的邏輯判斷20.6文件目錄屬性判斷20.7-9if特殊用法 case判斷

20.5shell腳本中的邏輯判斷20.6文件目錄屬性判斷20.7-9if特殊用法 case判斷

十七周一次課(4月18日)

20.5shell腳本中的邏輯判斷
技術分享圖片
技術分享圖片
格式1:if 條件 ; then 語句; fi
大部分時候都是用的這種格式
技術分享圖片
技術分享圖片技術分享圖片
格式2:if 條件; then 語句; else 語句; fi
技術分享圖片
技術分享圖片
格式2:if 條件; then 語句; else 語句; fi
技術分享圖片
20.6 文件目錄屬性判斷
技術分享圖片
[ -f file ]判斷是否是普通文件,且存在
技術分享圖片
執行過程
技術分享圖片
上面不存在已創建,再次執行就已存在
技術分享圖片
[ -d file ] 判斷是否是目錄,且存在
技術分享圖片
-d查看是否是目錄,不是就創建
技術分享圖片
-e查看是否存在
技術分享圖片
在shell裏touch是可以創建目錄與文件的,如果目錄下已存在目錄或文件,那麽它會更改它的3個time

是否可讀
技術分享圖片
是否可執行
技術分享圖片
前面加!就是取反[ -f $f ] || [ touch $f = if [ -f $f ] then touch $f fi

|| 表示當前面的條件不存在時再執行後面一條命令
&& 表示當前面的條件存在時再執行後面的命令
技術分享圖片
20.7 if特殊用法
技術分享圖片
if [ -z "$a" ] 這個表示當變量a的值為空時會怎麽樣
技術分享圖片
當它沒有值的時候就會報錯了
技術分享圖片
-z表示為空,它的用法
技術分享圖片
技術分享圖片技術分享圖片
exit當滿足前面的條件時就直接退出
技術分享圖片
-n的用法
當$b不為空的時候輸出 $b 當為空時輸出 b is null
文件不用雙引號引起來,變量就要用雙引號
技術分享圖片
-q是不顯示過濾的內容 -w更加精準的指定單字符
技術分享圖片
20.8/ 20.9 case判斷
技術分享圖片
vi /etc/init.d/network裏面就有case的語句
#!/bin/bash
read -p "Please input a number: " n
if [ -z "$n" ]
then
echo "Please input a number."
exit 1
fi
n1=echo $n|sed ‘s/[0-9]//g‘
if [ -n "$n1" ]
then
echo "Please input a number."
exit 1
fi
if [ $n -lt 60 ] && [ $n -ge 0 ]
then
tag=1
elif [ $n -ge 60 ] && [ $n -lt 80 ]
then
tag=2
elif [ $n -ge 80 ] && [ $n -lt 90 ]
then
tag=3
elif [ $n -ge 90 ] && [ $n -le 100 ]
then
tag=4
else
tag=0
fi
case $tag in
1)
echo "not ok"
;;
2)
echo "ok"
;;
3)
echo "ook"
;;
4)
echo "oook"
;;
*)
echo "The number range is 0-100."
;;
esac
技術分享圖片
技術分享圖片
read -p "Please input a number: " n read -p 的作用是前面賦值多少,n就是多少
技術分享圖片
執行腳本,輸入數字 101,查看執行的結果
技術分享圖片

20.5shell腳本中的邏輯判斷20.6文件目錄屬性判斷20.7-9if特殊用法 case判斷