BASH中case语句内设置变量报错:region: command not found 求助
BASH case语句错误修正
你的脚本报错核心是两个语法问题:
- 变量赋值格式错误:Bash中变量赋值时,
=两侧不能有空格。你写的region = "eu-west-2"会被Shell识别为执行region命令,参数是=和"eu-west-2",所以触发“region: command not found”。 - 默认分支无输出语句:
*) Invalid Choice ;;里的Invalid Choice没有输出指令,会被当作命令执行,同样会报错。
修正后的完整代码:
echo 'u = UKI' echo 'e = EU' echo 'a = NA' read choices case "$choices" in u) region="eu-west-2" ;; e) region="eu-central-2" ;; a) region="us-east-3" ;; *) echo "Invalid Choice" ;; esac echo $region
额外说明:
read choices后面的分号可以省略,不影响执行。- case语句里的缩进是为了提升可读性,Bash不强制要求,但建议保持格式一致。
内容的提问来源于stack exchange,提问作者yardyy
相关产品推荐
相关产品推荐

