我不知道如何正确地提出这个问题而不啰嗦,但我会尽力的!我需要一个我正在编写的脚本来在其中运行 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)”。
谢谢大家的指点,它们确实很有帮助。