2015-09-10 41 views
-1

例如,如果我的腳本是以下幾點:我的Perl腳本運行一個系統命令,我希望將輸出作爲腳本其餘部分的字符串,這怎麼實現?

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

system('echo schwifty') 

我 - 如何能得到我的輸出端子(schwifty)上到一個字符串,我可以繼續我的腳本中使用?

注意:「回聲」只是作爲一個例子,我正在使用其他命令打印到屏幕。

+0

'perldoc -f system' – toolic

回答

6

捕獲外部命令的輸出,使用反引號或qx

my $output = qx{echo schwifty}; 
die unless $output =~ /schw/; 
0

對於多行系統調用諸如ls我傾向於使用一個@array存儲輸出。當需要處理很多行時,比變量更靈活。

與choroba的例子非常相似,但進一步擴展了一點。

my @output = qx{ ls -l }; 

foreach my $line (@output) 
{ 
    # process each $line here 
    print "$line"; 
} 
相關問題