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.
精彩评论