繁体   English   中英

Bash Bc和echo命令

[英]Bash bc and echo commands

我正在为geektool编写一个小geeklet,以在Mac上的不活动和可用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

也想知道我的问题是否最佳。 非常感谢。

我想知道这是否真的可以简化您的命令。 由于我不在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"

而不是解析top ,请使用/proc/meminfo文件。 例如,使用:

$ head -2 /proc/meminfo
MemTotal:        4061696 kB
MemFree:          335064 kB

您可以看到全部和可用内存

user000001的答案是正确的,但是问题是“如何将/proc/meminfo输出转换为变量?”

您可以使用此纯bash解决方案进行解析:

read -d '' _  memTotal _ _ memFree _ < <(head -2 /proc/meminfo)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM