我正在为geektool写小geeklet,当我的Mac上的非活动RAM和免费RAM总和变慢时提醒我。我对bash不是很好,所以我的最终输出有问题(变空)。 这是代码:
inMem=$(top -l 1|awk '/PhysMem/ {print $6}'|sed s/M//) | freeMem=$(top -l 1|awk '/PhysMem/ {print $10}'|sed s/M//) | totalMem=$inMem+$freeMem | bc | echo $totalMem
还想知道我的问题是否是最佳的。 非常感谢。
答案 0 :(得分:2)
我想知道这是否真的可以简化你的命令。我不能测试它因为我不在OSX上,但我希望它有效。
read inMem freeMem totalMem < <(top -l 1 | awk '/PhysMem/ { i = $6; sub(/M/, "", i); f = $10; sub(/M/, "", f); printf("%d %d %d\n", i, f, i + f); exit; }')
echo "inMem: $inMem"
echo "freeMem: $freeMem"
echo "totalMem: $totalMem"
答案 1 :(得分:-1)
使用top
文件,而不是解析/proc/meminfo
。例如,使用:
$ head -2 /proc/meminfo
MemTotal: 4061696 kB
MemFree: 335064 kB
你可以看到总的和可用的记忆
答案 2 :(得分:-1)
user000001 answer是对的,但问题是“如何将/proc/meminfo
输出到变量中?”
您可以使用此纯bash解决方案进行解析:
read -d '' _ memTotal _ _ memFree _ < <(head -2 /proc/meminfo)