2012-04-19 5 views
0
sub cdevice{ 
    $p=$_[0]; 
    $s=$_[1]; 
    $q=$_[2]; 
    try { 
     $device_create_cmd ="create type:NSR Device;media type:adv_file;name:$p;device access information:$p"; 
     system("echo $device_create_cmd > command.txt "); 
    } catch Error with { 
     print "Error " ; 
     exit();  
    }; 
} 
cdevice("/device1","raddh054","/device1"); 

このPLファイルは、Linuxでのエコーがテキストの間にスペースを受け付けていませんので!どのように私はそれをperlのリダイレクトLinuxの

+0

あなたはこのシステム(「エコー\」$ device_create_cmd \「> command.txt」)のような単一引用符または二重引用符を追加する必要が –

+0

のlinuxでその示す空のファイルを。 –

+0

しかしそれは窓ではたらきません、それは余分な引用符を生成します... –

答えて

4

の解決だけでファイルを開いて、そこに書き込みをWindows上ではなく、Linux上で正常に動作していますあなた自身。なぜシェルを巻き込むのですか?

use strictures; 
use autodie qw(:all); 

⋮ 

sub cdevice { 
    my ($p, $s, $q) = @_; 
    try { 
     open my $h, '>', 'command.txt'; 
     print {$h} "create type:NSR Device;media type:adv_file;name:$p;device access information:$p\n" 
    } … 
+0

それは動作するはずです!私はそれを試してみよう!Thnks –

関連する問題