微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如果问题可能很愚蠢,我很抱歉,但我对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 举报,一经查实,本站将立刻删除。

相关推荐