以下のスクリプトでは、2番目のステートメントで$ var1を拡張できないようです。私は$var1
、としよう${var1}
としましたecho $var1
。'$var1'
複数の引用符と括弧の中にありますが、それが問題の原因であると思います。どんなアイデアがありますか?
#!/bin/bash
# Get the AutoScalingGroupName for the NameNode ASG
var1=$(aws cloudformation list-stack-resources --stack-name abc123 | jq '.StackResourceSummaries[] | select(.ResourceType=="AWS::AutoScaling::AutoScalingGroup")' | jq '.PhysicalResourceId' | tr -d '"' | grep nn); echo $var1
var2=$(aws autoscaling describe-auto-scaling-instances | jq -r '.AutoScalingInstances[] | select(.AutoScalingGroupName == "$var1") | select(.AvailabilityZone == "us-east-1a") .InstanceId'); echo $var2
ベストアンサー1
一重引用符で囲まれた変数は拡張されません。この試み...
var2=$(aws autoscaling describe-auto-scaling-instances | jq -r '.AutoScalingInstances[] | select(.AutoScalingGroupName == "'"$var1"'") | select(.AvailabilityZone == "us-east-1a") .InstanceId'); echo $var2