开发者

unable to set variable in case statement bash

I'm trying to set a variable based on a bunch of input 开发者_StackOverflow中文版conditions. Here's a small sample of the code:

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

     ;;
esac
echo $INSTANCE_SIZE

When I run the script with the -ex switch and specify the proper argument:

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


You need to remove the $ sign in the assignments - INSTANCE_SIZE="m1.small". With the dollar sign, $INSTANCE_SIZE gets substituted with its value and no assignment takes place - bash rather tries to execute the command that resulted from the interpolation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜