**:
bash中如何實現條件判斷?
條件測試型別:
整數測試
字元測試
檔案測試
一、條件測試的表示式:
[ expression ] 括號兩端必須要有空格
[[ expression ]] 括號兩端必須要有空格
test expression
組合測試條件:
二、整數比較:
命令間的邏輯關係
第乙個條件為假 第二個條件不用在判斷,最總結果已經有
第乙個條件為真,第二個條件必須得判斷
三、字串比較
四、檔案測試
五、if語法
if 判斷條件 0為真 其他都為假
if 判斷條件;thenstatement1
statement2
.......
fi
if 判斷條件;thennote:statement1
statement2
.....
else
statement3
statement4
fi
if語句進行判斷是否為空
[ "$name」 = "" ]
等同於
[ ! "$name" ]note:[ -z "$name" ]
使用if語句的時候進行判斷如果是進行數值類的判斷,建議使用let(())進行判斷,對於字串等使用test[ ] or [[ ]] 進行判斷
(())中變數是可以不使用$來引用的
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.
linux下的shell指令碼
shell也是作業系統中的乙個軟體,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面,系統中的命令用shell去解釋shell接受系統回應的輸出並顯示其到螢幕中 什麼是shell指令碼 指令碼是一種解釋型語言,用shell指令碼儲存執行動作,用指令碼判定命令的執行條件,用指令碼來實...
Linux下Shell指令碼
shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。從業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell ...
LINUX下的shell指令碼 shell簡介篇
什麼是shell?1.shell是linux的一外殼,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面 2.當使用者下達指令給作業系統的時候,實際上是把指令告訴shell,經過shell解釋,處理後讓核心做出相應的動作 3.系統的回應和輸出的資訊也由shell處理,然後顯示在使用者...