如果问题可能很愚蠢,我很抱歉,但我对awk脚本完全不熟悉.
我想要做的是用户“root”计算和打印cpu和内存的使用情况.
我写了这个执行awk脚本的bash脚本:
#!/bin/bash
ps aux > processi.txt
echo Lancio script3.awk
awk -f script3.awk processi.txt
并且awk脚本如下:
#!/usr/bin/awk
BEGIN{
print "Inizio script\n"
cpu=0
mem=0
}
/root/{
printf("cpu usata da root loop=%.1f, memoria=%.1f\n",$3,$4)
cpu=cpu+$3
mem=mem+$4
}
END{
printf("cpu usata da root=%.1f, memoria=%.1f\n",$cpu,$mem)
print "\nFine script\n"
}
但是END的打印是0,而/ root /是正确的.
有什么建议?
解决方法:
$不用于扩展awk中的变量,它表示特定输入字段的扩展,其数字包含在给定变量中.也就是说,如果cpu = 3,则$cpu相当于$3.只需使用变量名称.
END {
printf("cpu usata da root=%.1f, memoria=%.1f\n", cpu, mem)
print "\nFine script\n"
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。