从Perl脚本打印外部命令的输出

时间:2012-01-23 12:16:35

标签: perl

我的任务是为在终端中运行此脚本的用户打印信息 我需要打印的信息是我从写作中得到的信息:

parted /dev/... print

是否有任何文件具有相同的信息,因此我可以使用perl脚本打开并打印它,
如果不是,我真的不知道如何获取有关哪个分区是“启动”的信息 和每个分区的大小

感觉就像我一直在网上看,也许我只是不好寻找 正确的参数,但我迷路了,感谢任何帮助

2 个答案:

答案 0 :(得分:5)

您可以运行命令并捕获输出

open my $cmd, '-|', 'parted', '/dev/...', 'print' || die "Can't run command: $!";

while (<$cmd>) {
    # do something with $_, e.g.
    print;
}

close $cmd || die "Error while closing off command: $!";

答案 1 :(得分:3)

这就是反引号(`)的用途:

print `parted /dev/... print`;

print qx(parted /dev/... print);     # Another way to do it

my $output = `parted /dev/... print`;  # Save to variable

...

print $fh $output;   # Use later

有关详细信息,请参阅perldoc perlop