第三章:Shell語句用法

第一節(jié):if判斷

1.單分支

if [ 條件 ]
then
    結(jié)果
fi

2.雙分支

if [ 條件1 ]      
then
    結(jié)果1
else
    結(jié)果2
fi

3.多分支

if [ 條件1 ]
then
    結(jié)果1
elif [ 條件2 ]
then
    結(jié)果2
elif [ 條件3 ]
then
    結(jié)果3
elif [ 條件4 ]
then
    結(jié)果4
elif [ 條件5 ]
then
    結(jié)果5
else
    結(jié)果6
fi

4.if嵌套

if [ 條件1 ]
then
    if [ 條件2 ]    #再滿足條件1之后再判斷條件2
    then
        結(jié)果2
    else
        結(jié)果3
    fi
else
    結(jié)果4
fi

5.if判斷語句案例

案例: 輸入兩個數(shù)字 是否為整數(shù) 使用if方式 
#!/bin/bash
read -p "請輸入第一個數(shù)字:" num1
read -p "請輸入第二個數(shù)字:" num2
if [ -z $num1 ]
then
   echo "您輸入的第一個數(shù)字為空"&& exit
elif [ -z $num2 ]
then
   echo "您輸入的第二個數(shù)字為空"&& exit
elif [[  "$num1" =~ ^[0-9]+$ && "$num2" =~ ^[0-9]+$ ]]
then

if [ $num1 -lt $num2 ]
then
   echo "$num1<$num2"
elif [ $num1 -gt $num2 ]
then
   echo "$num1>$num2"
else
   echo "$num1=$num2"
fi

else
    echo "您輸入了錯誤的值脸秽!"&& exit
fi    

第二節(jié):for循環(huán)

1.for語句格式

for 變量名 in [取值列表]
do
    循環(huán)體
done

[root@m01 /scripts]# cat 02for.sh 
#!/bin/bash
IFS=' :.'  #for循環(huán)默認(rèn)以空格為分隔符,來讀取數(shù)據(jù)祥国,這里指定 :. 為分隔符
for i in $(cat /etc/hosts);do
    echo $i
done

2.for嵌套循環(huán)

for 變量名 in [取值列表]
do
    for 變量名 in [取值列表]    
    do                       
        循環(huán)體
    done
done

第三節(jié):while循環(huán)

1.用法一:while后面接條件語句

while [ 條件表達(dá)式 ]
do
    循環(huán)體
done

2.用法二:while按行讀取文件內(nèi)容

while read line
do
    循環(huán)體
done<文件名

第四節(jié):流程控制語句

1.exit 退出整個腳本 不會繼續(xù)執(zhí)行
2.break 跳出本次循環(huán) 繼續(xù)往下執(zhí)行 跳出循環(huán)體
3.continue 結(jié)束當(dāng)前此次的命令,繼續(xù)下一次循環(huán)
4.continue 2 結(jié)束當(dāng)前此次的命令虑凛,繼續(xù)循環(huán)體下面的命令

第五節(jié):case 流程控制語句

case 變量名4 in
            模式匹配1)
                命令的集合
                    ;;
            模式匹配2)
                命令的集合
                    ;;
            模式匹配3)
                命令的集合
                    ;;
            *)                  *的下一行不需要有;;
            echo USAGE[$0 1|2|3]
esac        

第六節(jié):函數(shù)

1.函數(shù)定義的三種方式

test1(){
    echo "第一種函數(shù)定義方式"
}
function test2(){
    echo "第二種函數(shù)定義方式"
}
function test3 {
    echo "第三種函數(shù)定義方式"
}

第七節(jié):數(shù)組

1.普通數(shù)組 只能以數(shù)字作為索引(下標(biāo))

第一種定義方式
數(shù)組名[索引]=值
[root@web scripts]# array[0]=shell
[root@web scripts]# array[1]=Linux
[root@web scripts]# array[2]=MySQL
第二種定義方式 一次定義多個值
數(shù)組名=(值)
[root@web02 ~]# array=(shell mysql [20]=kvm [50]=test)
declare -a    #查看普通數(shù)組

1.select定義一個菜單

#!/bin/bash
main=(
nginx
tomcat
php
)
select i in ${main[*]}
do
    echo $i
done

2.關(guān)聯(lián)數(shù)組 可以使用數(shù)字也可以使用字符串作為索引(下標(biāo))

declare -A array      #關(guān)聯(lián)數(shù)組需要先定義再使用
[root@web02 ~]# array[index1]=Shell
[root@web02 ~]# array[index2]=Linux
[root@web02 ~]# array[index3]=MySQL

3.遍歷數(shù)組

查看數(shù)組的索引赁酝,值谣膳,和索引個數(shù)
1. echo ${array[*]}     #遍歷數(shù)組的值
2. echo ${!array[*]}    #遍歷索引
3. echo ${#array[*]}    #查看索引個數(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谈山,一起剝皮案震驚了整個濱河市智亮,隨后出現(xiàn)的幾起案子忆某,更是在濱河造成了極大的恐慌,老刑警劉巖阔蛉,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弃舒,死亡現(xiàn)場離奇詭異,居然都是意外死亡状原,警方通過查閱死者的電腦和手機聋呢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颠区,“玉大人削锰,你說我怎么就攤上這事”侠常” “怎么了器贩?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長朋截。 經(jīng)常有香客問我磨澡,道長,這世上最難降的妖魔是什么质和? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任稳摄,我火速辦了婚禮,結(jié)果婚禮上饲宿,老公的妹妹穿的比我還像新娘厦酬。我一直安慰自己,他們只是感情好瘫想,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布仗阅。 她就那樣靜靜地躺著,像睡著了一般国夜。 火紅的嫁衣襯著肌膚如雪减噪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天车吹,我揣著相機與錄音筹裕,去河邊找鬼。 笑死窄驹,一個胖子當(dāng)著我的面吹牛朝卒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乐埠,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼抗斤,長吁一口氣:“原來是場噩夢啊……” “哼囚企!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瑞眼,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤龙宏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后伤疙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烦衣,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年掩浙,在試婚紗的時候發(fā)現(xiàn)自己被綠了花吟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡厨姚,死狀恐怖衅澈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谬墙,我是刑警寧澤今布,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站拭抬,受9級特大地震影響部默,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜造虎,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一傅蹂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧算凿,春花似錦份蝴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至署鸡,卻和暖如春案糙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背靴庆。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工时捌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撒穷。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓匣椰,卻偏偏與公主長得像裆熙,于是被迫代替她去往敵國和親端礼。 傳聞我的和親對象是個殘疾皇子禽笑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容