我的 Perl 脚本运行一个系统命令,我希望脚本的其余部分以字符串形式输出,如何实现?
My Perl Script runs a system command, I want the output as a string for the rest of the script, how can this be accomplished?
例如,如果我的脚本如下:
#! /bin/perl
use strict;
use warnings;
system('echo schwifty')
-我怎样才能将我的终端 (schwifty) 上的输出转换成一个字符串,我可以继续使用我的脚本?
注意:"echo" 仅作为示例给出,我正在使用其他打印到屏幕的命令。
要捕获外部命令的输出,请使用反引号或 qx
:
my $output = qx{echo schwifty};
die unless $output =~ /schw/;
对于多行系统调用,例如ls
,我倾向于使用@array 来存储输出。当有很多行要处理时,比变量更灵活。
与 choroba 的示例非常相似,但进一步扩展。
my @output = qx{ ls -l };
foreach my $line ( @output )
{
# process each $line here
print "$line";
}
例如,如果我的脚本如下:
#! /bin/perl
use strict;
use warnings;
system('echo schwifty')
-我怎样才能将我的终端 (schwifty) 上的输出转换成一个字符串,我可以继续使用我的脚本?
注意:"echo" 仅作为示例给出,我正在使用其他打印到屏幕的命令。
要捕获外部命令的输出,请使用反引号或 qx
:
my $output = qx{echo schwifty};
die unless $output =~ /schw/;
对于多行系统调用,例如ls
,我倾向于使用@array 来存储输出。当有很多行要处理时,比变量更灵活。
与 choroba 的示例非常相似,但进一步扩展。
my @output = qx{ ls -l };
foreach my $line ( @output )
{
# process each $line here
print "$line";
}