如果问题可能很愚蠢,我很抱歉,但我对awk脚本完全陌生。 我想要做的是由用户“root”来计算和打印CPU和内存的使用情况。 我写了这个bash脚本,其执行awk脚本:awk脚本总是打印sum = 0
#!/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/
是正确的。 有什么建议吗?
谢谢,我不知道。这解决了这个问题。 – rafc
@rafc永远记得 - ** awk不是shell **。 Awk的语法与C相比更像是shell。 –
@EdMorton好吧,从语法上来说这是合法的,尽管可能在'END'块中几乎没用。但一致认为,对于预期用途它不能使用。 – chepner