課程
/運維&測試
/Linux
/shell編程之條件判斷與流程控制
elif后面可以不接fi,遇到嵌套條件怎么辦
比如elfi后面再接elif,如何判斷第二個elif是和前一個elfi并列還是屬于嵌套在前一個elif的子語句
2017-12-11
源自:shell編程之條件判斷與流程控制 4-3
正在回答
如果是人去判斷,沒有縮進的話,很容易看錯的。所以,在寫的時候,按照格式進行縮進比較好看清楚。例如這樣的。
#!/bin/bash echo?"Please?make?your?choose?:?" echo?"Linux???-----?1" echo?"Windows?-----?2" echo?"Mac?????-----?3" read?-t?30?cho if?[?$cho?==?"2"?];then??????????#?第一個?if?的第一個分支 ????echo?"your?choose?is?:?$cho" elif?[?$cho?==?"1"?];then????????#?第一個?if?的第二個分支 ????echo?"In?Linux?,?you?use?which?" ????echo?"?RedHat??-----?1" ????echo?"?Ubuntu??-----?2" ????read?-t?30?li ????if?[?$li?==?"1"?];then? ????#?第二個?if?,嵌套在第一個?if?的第二個分支里面; ????#?解析的時候,系統(tǒng)知道這是開啟了第二個if,再碰到elif都會認為是第二個if里面的, ????#?直到碰到了關鍵字?fi,就認為第二個if結束。 ????????echo?"input?is?1,?so?you?use?RedHat!" ????elif?[?$li?==?"2"?];then ????????echo?"input?is?2,?so?you?use?Ubuntu!" ????else? ????????echo?"Error?input!" ????fi?#?關閉內(nèi)層的if elif?[?$cho?==?"3"?];then #?這里的elif是外面一層if里面的分支,因為在此之前已經(jīng)碰到了fi關閉了內(nèi)層的if ????echo?"your?choose?is?:?$cho" else? ????echo?"you?make?a?unknown?choose!" fi?#?關閉外層的if
不知道解釋清除了沒有,仔細看都不是很難懂的。
窮將人 提問者
舉報
Linux shell實用案例學習,一定會使你Linux運維能力再次提高
4 回答if 怎樣改成非嵌套
2 回答遇到問題了
2 回答根分區(qū)的文件系統(tǒng)名字太長不在一行怎么辦
2 回答第三個嵌套if簡化成這樣,沒啥漏洞吧,求檢測
1 回答老師交待的作業(yè),不用if嵌套寫了個加減乘除,大神們有BUG嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2017-12-21
如果是人去判斷,沒有縮進的話,很容易看錯的。所以,在寫的時候,按照格式進行縮進比較好看清楚。例如這樣的。
不知道解釋清除了沒有,仔細看都不是很難懂的。