角かっこと引用符内の変数の拡張

角かっこと引用符内の変数の拡張

以下のスクリプトでは、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

おすすめ記事