AWK에서 변수를 읽는 중에 문제가 발생했습니다.

AWK에서 변수를 읽는 중에 문제가 발생했습니다.

다음 명령으로 메모리 정보를 얻으려고 합니다.

#!/bin/bash
set -x
cat /proc/meminfo | grep "MemFree" | tail -n 1 | awk '{ print $2 $4 }' | read numA numB
echo $numA

알겠어요

+ awk '{ print $2 $4 }'
+ read numA numB
+ tail -n 1
+ grep MemFree
+ cat /proc/meminfo
+ echo

나는 성공하지 못한 채 이 데이터를 변수로 읽어들이려고 했습니다. 내 질문은 그것을 변수로 읽는 방법입니다. 사용 가능한 메모리 양을 읽고 싶습니다(예: 90841312KB).

답변1

read다음을 사용하고 간단히 수행할 수 있습니다.

while read -r memfree
  do printf '%s\n' "$memfree"
  done < <(awk -F: '/MemFree/{print $2}' /proc/meminfo)

답변2

단일 값을 각 변수에 직접 저장해 보세요. 다음 플래그를 사용하여 제거 cat하고 파이프할 수도 있습니다.tail-mgrep

numA=$(grep -m 1 "MemFree" /proc/meminfo | awk '{ print $2 }')
numB=$(grep -m 1 "MemFree" /proc/meminfo | awk '{ print $3 }')

echo $numA $numB

관련 정보