false shell 判断_六、Shell流程控制-if判断语句
1. shell中的運算
1.1 數學比較運算
-eq 等于
-ne 不等于
-lt 小于
-gt 大于
-le 小于等于
-ge 大于等于
浮點數的比較建議將數字等比放大至整數進行比較,例如
#比較1.5和2的大小
test `echo 1.5*10|bc|awk -F "." '{print $1}'` -lt $((2*10))
1.2 文件比較運算
-d 檢查目錄是否存在
-e 檢查文件或目錄是否存在
-f 檢查文件是否存在
-r 檢查文件是否存在且可讀
-s 檢查文件是否存在且不為空
-w 檢查文件是否存在且可寫
-x 檢查文件是否存在且可執行
-O 檢查文件是否存在且被當前用戶擁有
-G 檢查文件是否存在且默認組為當前組
file1 -nt file2 檢查file1是否比file2新,比較mtime
file1 -ot file2 檢查file1是否比file2舊,比較mtime
file1 -ef file2 檢查file1是否比file2是否有相同的inode
1.3 字符串比較運算
== 等于
!= 不等于
-n (not zero)檢查字符串是否不為空
-z (zero)檢查字符串是否為空
1.4 邏輯運算
&& 邏輯與運算
|| 邏輯或運算
! 邏輯非運算
2. if語句
[ condition ]可以由多個條件使用||或&&拼接
例如:
#只要一個條件為真就行
if [ $var1 -lt 1 ] || [ $var2 -gt 2 ]
#必須所有條件為真
if [ $var1 -lt 1 ] && [ $var2 -gt 2 ] && [ $var3 -lt 10 ]
2.1 單if語句
適用范圍:只需一步判斷,條件返回真干什么
語法:
if [ condition ] #condition為true或false,[]與condition中間有空格
then
command
fi
例子:
#如果/tmp/abc目錄不存在,就創建目錄
#!/bin/bash
if [ ! -d /tmp/abc ]
then
mkdir /tmp/abc
echo "create dir /tmp/abc"
fi
2.2 if-then-else語句
適用范圍:兩步判斷,條件為真干什么,條件為假干什么
if [ condition ]
then
command1
else
command2
fi
例子:
#如果用戶是root,輸出"管理員,你好",否則輸出"Guest,你好"
#!/bin/bash
if [ $USER == 'root' ]
then
echo "管理員,你好"
else
echo 'Guest,你好'
fi
2.3 if-then-elif-then-else語句
適用范圍:多于兩個以上的判斷結果
if [ condition1 ]
then
command1
elif [ condition2 ]
then
command2
......
else
commandx
fi
例子:
#給腳本傳入兩個整數,輸出比較結果
#!/bin/bash
if [ $1 -gt $2 ]
then
echo "$1>$2"
elif [ $1 -eq $2 ]
then
echo "$1=$2"
else
echo "$1
fi
3. if高級應用
3.1 條件符號使用(( ))植入數學表達式
在數學表達式中,使用的是傳統的比較運算符 >、>=、==、
例子:
#判斷(5+4)*10>89
#!/bin/bash
if (( (5+4)*10>89 ))
then
echo "yes"
else
echo "no"
fi
3.2 條件符號使用[[ ]]在條件中使用通配符
例子:
#打印r開頭的字符串
#!/bin/bash
for var in r1 r2 a ab c
do
if [[ $var == r* ]]
then
echo $var
fi
done
總結
以上是生活随笔為你收集整理的false shell 判断_六、Shell流程控制-if判断语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6月汽车质量投诉排行榜 宝马独占“半壁江
- 下一篇: 关于ajax请求400问题解决