• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

df_chk.awk에 질문드립니다.

21.03.08 22:04 작성 조회수 161

0

훌륭한 강의준비 해주셔서 감사합니다. 이제 다 보고 

다음 강의로 넘어 갈려고 하는데 하나 궁금한점이 있어서 질문드립니다.

df_chk.awk 파일에서 

만약 df스토리지 가 read로 입력 받는 값보다 PER가 크면 출력 되도록 작성하고싶은데..

if ( PER > (사용자가 입력하는값넣기)) MNT=$6

위처럼 조건을 만들고싶은데 

사용자가 입력하는값에다가 변수를 만들어서 등록하는방법이 있을까요??

답변 1

답변을 작성해보세요.

1

안녕하세요 병수님!

if ( PER > (사용자가 입력하는값넣기)) MNT=$6

이런 식으로 활용할 수 있습니다. 

쉘스크립트 내부의 변수 또는 실행시 입력한 값을 awk에서 변수로 활용할 수 있는 지가 관건인데요.

awk의 -v 옵션을 사용하면 외부의 변수를 awk 내부에서 활용할 수 있습니다. 

사용 방법은 아래와 같습니다. 여기에서 $1은 쉘 스크립트를 실행할 때 넣은 첫번째 항목입니다.

awk -v AWK에서사용할변수명=$1 '.....AWK명령...'

실행할 때 입력한 숫자를 NUM이라는 변수에 넣어서 처리한다고 하면 아래처럼 되겠지요.

df -h | awk -v NUM=$1 '.....생략....; if ( PER > NUM ) MNT=$6;....생략....

이제 아래처럼 스크립트를 실행하면 사용량이 50%이상인 파티션을 출력할 수 있습니다. 

df_chk.sh 50

:) 도움이 되셨을까요?