BASH 脚本 - 子菜单和嵌套大小写
BASH Script - SubMenu and Nested case
我是 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}\n" && 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}\n" && sleep 2 ;;
esac
esac
这是选择 "major" 版本后的错误消息:
./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 不同。因此,如果在“3) echo 1.5.0”行之前删除 "esac" 或添加 "case",语法颜色又是 "normal" in Vim.
如果我 运行 没有第 3 个 case/esac 的脚本,它将完美运行。
似乎 esac 第 25 行关闭了第一个 esac 而不是第二个 (!?)
预先感谢您的帮助!
您需要完成每个案例;;
这里,你还没有完成案例 2)
2)
...
esac
;;
3) echo "1. 1.5.0"
...
我是 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}\n" && 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}\n" && sleep 2 ;;
esac
esac
这是选择 "major" 版本后的错误消息:
./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 不同。因此,如果在“3) echo 1.5.0”行之前删除 "esac" 或添加 "case",语法颜色又是 "normal" in Vim.
如果我 运行 没有第 3 个 case/esac 的脚本,它将完美运行。
似乎 esac 第 25 行关闭了第一个 esac 而不是第二个 (!?)
预先感谢您的帮助!
您需要完成每个案例;;
这里,你还没有完成案例 2)
2)
...
esac
;;
3) echo "1. 1.5.0"
...