BASH脚本 - SubMenu和嵌套案例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BASH脚本 - SubMenu和嵌套案例相关的知识,希望对你有一定的参考价值。

我是Bash脚本中的新手,我正面临着这个问题。

echo "Which version of the product ?"
echo "1. v3.0"
echo "2. v2.0"
echo "3. v1.0"
read -p "Select the version needed [ 1 - 3 ] : " SelectMajorVersion
clear

case $SelectMajorVersion in
1) PACKAGE_URL="URL" ;;
2) echo "1. 2.1.0"
   echo "2. 2.1.1"
   echo "3. 2.1.2"
   echo "4. 2.1.3"
   echo "5. 2.1.4"
   read -p "Select the version needed [ 1 - 5 ] : " SelectMinorVersion
   case $SelectMinorVersion in
        1) PACKAGE_URL="URL1" ;;
        2) PACKAGE_URL="URL2" ;;
        3) PACKAGE_URL="URL3" ;;
        4) PACKAGE_URL="URL4" ;;
        5) PACKAGE_URL="URL5" ;;
        *) printf -e "${RED}Error...${NC}
" && sleep 2 ;;
    esac

3) echo "1. 1.5.0"
   echo "2. 1.5.1"
   echo "3. 1.5.2"
   echo "4. 1.5.3"
   read -p "Select the version needed [ 1 - 8 ] : " SelectMinorVersion
   case $SelectMinorVersion in
        1) PACKAGE_URL="URL11" ;;
        2) PACKAGE_URL="URL22" ;;
        3) PACKAGE_URL="URL33" ;;
        4) PACKAGE_URL="URL44" ;;

*) printf -e "${RED}Error...${NC}
" && sleep 2 ;;
   esac
esac

这是选择“主要”版本后的错误消息:

./menu3.sh: line 27: syntax error near unexpected token `)'
./menu3.sh: line 27: `    3)  echo "1. 1.5.0"'

这个问题似乎与“3)echo”1之前有关。 1.5.0“与”esac“。

采取的步骤: - 我在Visual Studio中看不到任何内容,但颜色语法与VIM不同。因此,如果删除“esac”或在“3)echo 1.5.0”之前添加“case”,则语法颜色在Vim中再次“正常”。

  • 如果我在没有第3个案例/ esac的情况下运行脚本,它就能完美运行。
  • 似乎esac线25关闭了第一个esac而不是第二个(!?)

预先感谢您的帮助 !

答案

你需要用;;完成每个案例

在这里,你没有完成案件2)

2)
    ...
    esac
;;
3) echo "1. 1.5.0"
...

以上是关于BASH脚本 - SubMenu和嵌套案例的主要内容,如果未能解决你的问题,请参考以下文章

十分钟完成Bash 脚本进阶!列举Bash经典用法及其案例

Bash 脚本进阶,经典用法及其案例

Bash 脚本进阶,经典用法及其案例

谢烟客---------Linux之bash脚本编程---if补充和for循环

十分钟完成Bash 脚本进阶!列举Bash经典用法及其案例

帮助Linux运维十分钟完成 Bash 脚本进阶!Bash经典用法及其案例详解列举!