如何使用jq查询具有json值的变量。下面的命令返回一个分配给activity
变量的json。但从activity
变量不确定如何使用jq进行查询?
activity=`aws autoscaling describe-scaling-activities --profile mfa --auto-scaling-group-name cb-citation-needed --max-items 1`
当我尝试低于它时,变量activityCause为空。
activityCause=$activity| jq -r '.Activities[].Cause'
或
activityCause=`$activity| jq -r '.Activities[].Cause'` i get error for this one
然而,当我尝试在一个命令中查询时,它可以
activityCause=`aws autoscaling describe-scaling-activities --profile mfa --auto-scaling-group-name cb-citation-needed --max-items 1 | jq -r '.Activities[].Cause'`
第一个命令将JSON分配给activity
变量。
第二个命令,需要通过管道"馈送"json,因为在activityCause=$activity
中,$activity
被解释为命令,而不是json;
-
在此处使用bash
activityCause=$(jq -r '.Activities[].Cause' <<< "$activity")
-
使用老派echo:
activityCause=$(echo "$activity" | jq -r '.Activities[].Cause')