为了账号安全,请及时绑定邮箱和手机立即绑定

elif后面可以不接fi,遇到嵌套条件怎么办

elif后面可以不接fi,遇到嵌套条件怎么办

比如elfi后面再接elif,如何判断第二个elif是和前一个elfi并列还是属于嵌套在前一个elif的子语句

正在回答

1 回答

如果是人去判断,没有缩进的话,很容易看错的。所以,在写的时候,按照格式进行缩进比较好看清楚。例如这样的。

#!/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

不知道解释清除了没有,仔细看都不是很难懂的。

0 回复 有任何疑惑可以回复我~
#1

穷将人 提问者

非常感谢!
2017-12-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

elif后面可以不接fi,遇到嵌套条件怎么办

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信