穷将人
2017-12-11 17:24
elif后面可以不接fi,遇到嵌套条件怎么办
比如elfi后面再接elif,如何判断第二个elif是和前一个elfi并列还是属于嵌套在前一个elif的子语句
如果是人去判断,没有缩进的话,很容易看错的。所以,在写的时候,按照格式进行缩进比较好看清楚。例如这样的。
#!/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 的第二个分支里面; # 解析的时候,系统知道这是开启了第二个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 # 关闭内层的if elif [ $cho == "3" ];then # 这里的elif是外面一层if里面的分支,因为在此之前已经碰到了fi关闭了内层的if echo "your choose is : $cho" else echo "you make a unknown choose!" fi # 关闭外层的if
不知道解释清除了没有,仔细看都不是很难懂的。
shell编程之条件判断与流程控制
35507 学习 · 139 问题
相似问题