获取内存信息的脚本

时间:2013-04-24 12:43:02

标签: linux perl unix

 #! usr/bin/perl
    sub memoryInfo
    {
        print "Inside memory info \n";
        @memoryInfo = qx(free -m);
        foreach (@memoryInfo)
        {
            print "$_\n";
        }

    }

    &memoryInfo;

这是我的Perl程序无效。我需要一些信息,如总内存,总物理内存,总使用内存,总缓存,总交换内存和总使用的交换内存。

任何人都可以帮助我吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

这非常有效。

#!/usr/bin/perl

use strict;
use warnings;

sub memoryInfo
{
    print "Inside memory info \n";
    my @memoryInfo = qx(free -m);
    foreach (@memoryInfo)
    {
        print "$_\n";
    }

}

memoryInfo();

答案 1 :(得分:1)

如果您使用

调用它,程序运行正常
perl meminfo.pl

当可执行时,您应该收到如下错误:

./meminfo.pl
bash: ./meminfo.pl: usr/bin/perl: bad interpreter: No such file or directory

表示您的shebang(以#!开头的第一行错误...

另外,您会注意到输出中有额外的换行符,因为数组中的每一行都有一个换行符...

最后:

  • 使用严格和警告
  • 不要使用&
  • 调用subs
  • 避免变量中的驼峰案例

您的计划的工作版本可能是:

#!/usr/bin/perl

use strict;
use warnings;

sub memoryInfo {
    print "Inside memory info \n";

    my @memoryinfo = qx(free -m);
    chomp @memoryinfo;

    foreach (@memoryinfo) {
        print "$_\n";
    }
}

memoryInfo;