从 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

我尝试将这些数据读取到变量中但没有成功。我的问题是如何将其读取为变量?我想读取有多少内存可用,例如:90841312 KB

答案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

相关内容