2011-07-13 54 views
3

我想根据一堆输入条件设置一个变量。下面的代码的小样本:无法设置变量case case bash

#!/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 

回答

6

您需要删除该任务的$标志 - INSTANCE_SIZE="m1.small" 。使用美元符号,$INSTANCE_SIZE被替换为其值,并且不进行任何分配 - 而bash试图执行由插值产生的命令。

+0

谢谢!我需要一个额外的眼睛,这是我的一个主要的放屁! –