如果問題可能很愚蠢,我很抱歉,但我對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