Makefile: 객체를 변수에 할당하고 객체 배열을 반복하는 방법

Makefile: 객체를 변수에 할당하고 객체 배열을 반복하는 방법

파일 생성:

QUERY := "securityresources | where type == 'microsoft.security/assessments' | summarize by assessmentKey=name | join kind=inner ( securityresources | where type == 'microsoft.security/assessments/subassessments' | extend assessmentKey = extract('.*assessments/(.+?)/.*',1, id) ) on assessmentKey | where properties.additionalData.assessedResourceType == 'ContainerRegistryVulnerability' | extend status = properties.status.code | extend severity = properties.status.severity"

.ONESHELL:
check:
    # az graph query -q ${QUERY}
    results="`az graph query -q ${QUERY}`"
    @for result in $$results.data;
    do
        echo "$${result.status}"
    done

출력은 az graph query -q ${QUERY}다음과 같습니다.

{ "count": 10,
  "data" : [{"status":"healthy", "abc":"123"},
            {"status":"unhealthy", "abc":"322"},
            {"status":"healthy", "abc":"432"}
           ]
}

실수:

/bin/bash: 4행: ${result.status}: make 교체 오류: ***

[Makefile:23: 확인] 오류 1

명령 출력을 변수에 할당하고 해당 객체를 반복하고 이러한 객체의 키, 값에 액세스하려면 어떻게 해야 합니까?

답변1

이를 사용하여 jqJSON을 반복할 수 있습니다.

그것은 다음과 같습니다:

az graph query -q ${QUERY} | jq .data[].status

이것이 확실히 관련이 있는지는 확실하지 않지만make

관련 정보