我正在尝试根据一堆输入条件设置变量。以下是代码的一小部分示例:
#!/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
答案 0 :(得分:7)
您需要删除作业中的$
符号 - INSTANCE_SIZE="m1.small"
。使用美元符号,$INSTANCE_SIZE
将替换为其值,并且不会发生任何赋值 - bash会尝试执行插值产生的命令。