我正在尝试通过此命令获取内存信息:
#!/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
-m
grep
numA=$(grep -m 1 "MemFree" /proc/meminfo | awk '{ print $2 }')
numB=$(grep -m 1 "MemFree" /proc/meminfo | awk '{ print $3 }')
echo $numA $numB