i'm getting list of ec2 instances , trying loop through them reason i'm not able loop work.
output="$(aws ec2 describe-instances --filters 'name=tag:environment,values=development' --query '[reservations[*].instances[*].publicdnsname]' --output text)"
echo $output
displays like:
ec2-55-55-555-555.eu-west-1.compute.amazonaws.com ec2-66-66-666-666.eu-west-1.compute.amazonaws.com
then create array this:
instances=(${output//'\n'/ })
echo ${instances[0]}
, echo ${instances[1]}
gives correct output.
and try iterate through array:
for in $instances; echo instance: "$i"; done
but get:
instance: ec2-55-55-555-555.eu-west-1.compute.amazonaws.com ec2-66-66-666-666.eu-west-1.compute.amazonaws.com
instead of:
instance: ec2-55-55-555-555.eu-west-1.compute.amazonaws.com instance: ec2-66-66-666-666.eu-west-1.compute.amazonaws.com
what doing wrong? , there better way loop through results, maybe rather using json output format?
for windows cli:
aws ec2 describe-instances --query "reservations[].instances[].instanceid" > instances
for /f %i in (instances) aws ec2 terminate-instances --instance-ids %i
Comments
Post a Comment