gpt4 book ai didi

linux - awk 脚本总是打印 sum=0

转载 作者:IT王子 更新时间:2023-10-29 01:04:51 27 4
gpt4 key购买 nike

如果这个问题可能很愚蠢,我很抱歉,但我对 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"
}

关于linux - awk 脚本总是打印 sum=0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871737/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com