I’m trying to set a variable based on a bunch of input 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_SIZEgets substituted with its value and no assignment takes place – bash rather tries to execute the command that resulted from the interpolation.