2017-12-22 16 views
0

AWS cli의 일부 출력을 구문 분석하기 위해 jq을 사용하고 있습니다.

'select(startswith("$variable"))'을 사용하려고하는데 변수 값을 사용할 때 어떤 이유로 제대로 작동하지 않습니다.

예 :

aws cloudformation describe-stacks --stack-name $StackName --region $region | jq -r '.Stacks[].Outputs[].OutputKey' | grep $App 

하지만 명령에 따라 JQ 모두를 사용하는 것을 선호 :

[email protected] ~/src/Scripts - $ echo $App 
Analytics 
[email protected] ~/src/Scripts - $ aws cloudformation describe-stacks --stack-name $StackName --region $region | jq -r '.Stacks[].Outputs[].OutputKey | select(startswith("Analytics"))' 
AnalyticsAutoScalingGroup 
[email protected] ~/src/Scripts - $ aws cloudformation describe-stacks --stack-name $StackName --region $region | jq -r '.Stacks[].Outputs[].OutputKey | select(startswith("$App"))' 
[email protected] ~/src/Scripts - $ 

나는과 같이 그렙을 사용할 수 있습니다 알고 있습니다.

내가 잘못하고 있니? 아니면 그냥 가능하지 않니?

답변

0

일반적으로 쉘 변수의 값을 jq 프로그램에 전달하는 가장 좋은 방법은 설명서에 설명 된대로 -—arg 및/또는 —-argjson 명령 줄 옵션을 사용하는 것입니다. 환경 변수는 env을 사용하여 전달할 수 있습니다.

도 참조하십시오. https://github.com/stedolan/jq/wiki/FAQ