Linux 无法在case语句bash中设置变量

Linux 无法在case语句bash中设置变量,linux,bash,scripting,Linux,Bash,Scripting,我试图根据一系列输入条件设置一个变量。下面是代码的一个小示例: #!/bin/bash INSTANCE_SIZE="" case "$1" in "micro") $INSTANCE_SIZE="t1.micro" ;; "small") $INSTANCE_SIZE="m1.small" ;; esac echo $INSTANCE_SIZE 当我使用-ex开关运行脚本并指定正确的参数时: + case "$1" in + =m1.sm

我试图根据一系列输入条件设置一个变量。下面是代码的一个小示例:

#!/bin/bash
INSTANCE_SIZE=""
case "$1" in
   "micro")
     $INSTANCE_SIZE="t1.micro"
     ;;
   "small")
     $INSTANCE_SIZE="m1.small"

     ;;
esac
echo $INSTANCE_SIZE
当我使用-ex开关运行脚本并指定正确的参数时:

+ case "$1" in
+ =m1.small
./provision: line 19: =m1.small: command not found

您需要删除分配中的
$
符号-
实例\u SIZE=“m1.small”
。使用美元符号,
$INSTANCE\u SIZE
将被其值替换,并且不会发生赋值-bash会尝试执行插值生成的命令