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

时间:2011-07-13 08:06:01

标签: 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.small
./provision: line 19: =m1.small: command not found

1 个答案:

答案 0 :(得分:7)

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