변수 값 대체

변수 값 대체

다음 코드를 사용하여 구성 파일을 읽고 매개변수 값을 얻으려고 합니다.

#!/bin/bash

app=ag
echo $app

#works if actual value of $app is used in quotes
processes=$(awk -F ' *= *' '$1=="ag"{print $2}' conf.cfg)

#doesn't work if trying to derive from variable
processes=$(awk -F ' *= *' '$1=="$(echo $app)"{print $2}' conf.cfg)
processes=$(awk -F ' *= *' '$1==\""$app"\"{print $2}' conf.cfg)

위 처리에서 변수값은 어떻게 사용되나요 awk?

답변1

원하는 결과를 올바르게 이해했다면 다음과 같은 구조를 사용해야 합니다.

processes=$(awk -v APP="${app}" -F ' *= *' '$1 ~ APP {print $2}' conf.cfg)
-v - argument assignment 

잘 모르겠지만 지식 기반에서 전역 변수를 사용하는 awk 예제를 찾지 못했습니다. 더 우아한 샘플이 있을 수도 있습니다.

관련 정보