**:
bash中如何實現條件判斷?
條件測試型別:
整數測試
字元測試
檔案測試
一、條件測試的表示式:
[ expression ] 括號兩端必須要有空格
[[ expression ]] 括號兩端必須要有空格
test expression
組合測試條件:
二、整數比較:
命令間的邏輯關係
第乙個條件為假 第二個條件不用在判斷,最總結果已經有
第乙個條件為真,第二個條件必須得判斷
三、字串比較
四、檔案測試
五、if語法
if 判斷條件 0為真 其他都為假
if 判斷條件;thenstatement1
statement2
.......
fi
if 判斷條件;thennote:statement1
statement2
.....
else
statement3
statement4
fi
if語句進行判斷是否為空
[ "$name」 = "" ]
等同於
[ ! "$name" ]note:使用if語句的時候進行判斷如果是進行數值類的判斷,建議使用let(())進行判斷,對於字串等使用test[ ] or [[ ]] 進行判斷[ -z "$name" ]
(())中變數是可以不使用$來引用的
example:表述數字範圍的時候 可以使用if可以是使用case
if [ $x -gt 90 -o $x -lt 100 ]這個語句的意思是如果$name為空,那麼x=x成立折執行下面的結果;case $x in
100)
9[0-9])
if [ "x$name" != "x" ]寫指令碼的時候很多時候需要用到回傳命令,$?如果上乙個命令執行成功,回傳值為0,否則為1~255之間的任何乙個
條件測試的寫法:
1、執行乙個命令的結果
if grep -q "rm" fs.sh;then
2、傳回乙個命令執行結果的相反值
if !grep -q "rm" fs.sh;then
3、使用復合命令((算式))
if ((a>b));then
4、使用bash關鍵字 [[判斷式]]
if [[ str > xyz ]];then
5、使用內建命令:test 判斷式
if test "str" \> "xyz";then
6、使用內建命令:[判斷式] 類似test
if [ "str" \> "xyz" ];then
7、使用-a -o進行邏輯組合
[ -r filename -a -x filename ]
8、命令&&命令
if grep -q "rm" fn.sh && [ $a -lt 100 ];then
9、命令||命令
if grep -q "rm" fn.sh || [ $a -lt 100 ];then
示例指令碼(
寫一段指令碼,輸入乙個測驗成績,根據下面的標準,輸出他的評分
成績(a-f)。
a: 90–100
b: 80–89
c: 70–79
d: 60–69
f: <60
#/bin/bash執行結果:#verson:0.1
#auther:lovelace
#pragram:this pragram is calculation your grade
#import an argument
read -p "please input your grade:" x
declare -i x
#jugemet $x value is none or not
if [ "$x" == "" ];then
echo "you don't input your grade...."
exit 5
fi#jugement the gread level
if [[ "$x" -ge "90" && "$x" -le "100" ]];then
echo "congratulation,your grade is a."
elif [[ "$x" -ge "80" && "$x" -le "89" ]];then
echo "good,your grade is b."
elif [[ "$x" -ge "70" && "$x" -le "79" ]];then
echo "ok.your grade is c."
elif [[ "$x" -ge "60" && "$x" -le "69" ]];then
echo "yeah,your grade is d."
elif [[ "$x" -lt "60" ]];then
echo "right,your grade is f."
else
echo "unknow argument...."
fi
[root@lovelace if]# ./grade.sh總結:條件判斷在shell語句中經常用到,需要熟練掌握,在此基礎上才能練就一手很好的指令碼編寫能力。祝各位每天都能獲得很大的進步.....please input your grade:
you don't input your grade....
[root@lovelace if]# ./grade.sh
please input your grade:53
right,your grade is f.
[root@lovelace if]# ./grade.sh
please input your grade:88
good,your grade is b.
shell 中的if語句
1 2 3 4 if a a 空格用 標示 then echo a a fi 最近幾天寫指令碼,遇到if語句時總是吃不準。這次總結一下。使用if語句有2中方式,一種是使用test命令另一種是使用 其中後者比較常用。方法一,使用test命令,這個命令返回乙個boolean值。1 test e data...
shell中的if語句
語法格式 if command then commands fi其中的command包含如下 shell command 任何shell命令,如果shell命令返回0,代表true,否則,代表false。並且多個command可以同時作為if的判斷條件,即可以寫為 if command1 comma...
shell中的語句
for語句 別寫指令碼列印1 10 編寫指令碼檢視相同區域網內的1 10號ip是否工作並輸出可以工作的ip while語句 格式while 條件 編寫指令碼,每過10s輸出一次系統佔用率 執行指令碼 if語句 if 條件 then elif 條件 then elif 條件 then else 若不加...