保存外部命令的输出!

保存外部命令的输出!

我不知道如何正确地提出这个问题而不啰嗦,但我会尽力的!我需要一个我正在编写的脚本来在其中运行 pidstat -V,然后捕获其中的输出并使用它来继续执行脚本!我尝试了很多变体,唯一没有得到错误读数的方法是如下

#!/usr/bin/perl 
use strict;
use warnings;

       my $cmd = "pidstat -V";
        my @output = `$cmd`;
        chomp @output;


        if (@output eq 'sysstat version 11.2.0 (C) Sebastien Godard (sysstat <at> orange.fr)') {

等等等等。

当我使用 STDIN 并且用户定义他们的 pidstat 版本时,其余脚本运行良好,但是当我使用上面的脚本时,我没有收到任何错误,只有一个新行!我遇到过不同的 pidstat 版本,它们给出不同的读数,所以我编写了脚本来适应这种情况!我知道我遗漏了一些东西,但不确定是什么。

答案1

解决了!

这非常简单,我所需要做的就是将“2>&1 | sed -e '2d'”添加到行:“my $cmd = qx{pidstat -V};”并从我的 if 语句中删除“(C) Sebastien Godard (sysstat orange.fr)”。

谢谢大家的指点,它们确实很有帮助。

相关内容