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

upb*_*nux 4 linux bash scripting

我正在尝试根据一堆输入条件设置变量.以下是代码的一小部分示例:

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

     ;;
esac
echo $INSTANCE_SIZE
Run Code Online (Sandbox Code Playgroud)

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

+ case "$1" in
+ =m1.small
./provision: line 19: =m1.small: command not found
Run Code Online (Sandbox Code Playgroud)

Bla*_*iev 10

您需要删除$作业中的符号 - INSTANCE_SIZE="m1.small".使用美元符号,$INSTANCE_SIZE用其值替换并且不进行任何赋值 - bash而不是尝试执行插值产生的命令.