我已尝试使用以下代码在%中打印内存使用情况。它打印答案如下,
71.2505 - 我需要71%的答案..我可以解决这个问题吗?
free | grep Mem | awk '{print $3/$2 * 100}'
答案 0 :(得分:1)
到目前为止,您至少有三个选项。 (1)从变量中的命令替换中捕获输出,然后使用简单的参数扩展和子串删除从右侧放弃小数,例如
val=$(free | grep Mem | awk '{print $3/$2 * 100}'); echo ${val%.*}
接下来@melpomene建议,使用awk
awk '{print int($3/$2 * 100)}'
最后,您可以将printf
与%d
格式说明符一起使用来丢弃小数,例如:
free | grep Mem | awk '{printf "%d\n", $3/$2 * 100}'
(注意:另一个,也许更好的格式说明符代替%d
将%.0f
来保留浮点字符,而修剪附加小数)
任何一方都可以。
答案 1 :(得分:0)
awk
不需要:
POSIX shell方法,( ie bash
,dash
, et al ):< / p>
free | { read; read a b c d; echo $((c*100/b)); }
POSIX shell:
set -- `free` ; echo $(($9*100/$8))
纯bash
:
m=(`free`) ; echo $((m[8]*100/m[7]))