Bash,语法错误:'elif'在elif行之后出乎意料

问题描述 投票:1回答:1

我谷歌搜索大约一个小时,找到为什么我的bash脚本错误,我觉得我的大脑准备爆炸导致没有答案,请帮助我

dtc=$(df /cache | awk '{print $4}' | awk 'NR==2')
    if [ "$dtc" -gt "196608" ]; then
        echo -ne "|         |  0%|         |\r"
        su -c "/system/0211/installer/swap/0211swaptocache192mb.sh"
        sleep 0.8
        echo -ne "|>>>>>>   | 30%|         |\r"
        mkswap /cache/0211swap.img
        swapon -p 1 /cache/0211swap.img
        echo 100 >  /proc/sys/vm/swappiness
        sleep 0.8
        echo -ne "|>>>>>>>>>| 55%|>        |\r"
        cp /system/0211/installer/swap/0211swapon /system/etc/init.d/0211swapon
        sleep 0.8
        echo -ne "|>>>>>>>>>|100%|>>>>>>>>>|\r"
        chmod 777 /system/etc/init.d/0211swapon
        sleep 1
        echo -ne "|>>>>>>>>>|Done|>>>>>>>>>|\n"
        sleep 0.8
        echo "If nothing wrong, your Swap is 192MB and should active"
        sleep 0.8
        else
        echo "/cache partition: not enough space"
        sleep 0.8
    elif [ "$dtc" -gt "163840" ]; then
        echo -ne "|         |  0%|         |\r" #this is the error
        su -c "/system/0211/installer/swap/0211swaptocache160mb.sh"
        sleep 0.8
        echo -ne "|>>>>>>   | 30%|         |\r"
        mkswap /cache/0211swap.img
        swapon -p 1 /cache/0211swap.img
        echo 100 >  /proc/sys/vm/swappiness
        sleep 0.8
        echo -ne "|>>>>>>>>>| 55%|>        |\r"
        cp /system/0211/installer/swap/0211swapon /system/etc/init.d/0211swapon
        sleep 0.8
        echo -ne "|>>>>>>>>>|100%|>>>>>>>>>|\r"
        chmod 777 /system/etc/init.d/0211swapon
        sleep 1
        echo -ne "|>>>>>>>>>|Done|>>>>>>>>>|\n"
        sleep 0.8
        echo "If nothing wrong, your Swap is 160MB and should active"
        sleep 0.8
    fi

有人可以帮帮我吗? 'elif'出乎意料,但错误就在elif之后

bash if-statement
1个回答
4
投票

else部分中间有一个then

...
    echo "If nothing wrong, your Swap is 192MB and should active"
    sleep 0.8
    else   # <-- this needs to go *after* the last `elif` section
    echo "/cache partition: not enough space"
    sleep 0.8
elif [ "$dtc" -gt "163840" ]; then
...
© www.soinside.com 2019 - 2024. All rights reserved.