![변수 값 대체](https://linux55.com/image/199988/%EB%B3%80%EC%88%98%20%EA%B0%92%20%EB%8C%80%EC%B2%B4.png)
다음 코드를 사용하여 구성 파일을 읽고 매개변수 값을 얻으려고 합니다.
#!/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 예제를 찾지 못했습니다. 더 우아한 샘플이 있을 수도 있습니다.