2016-09-13 16 views
0

英語が悪い場合は申し訳ありません。Perl、パイプでbashコマンドを実行

私はbashコマンドを持っている:

戻り番号を命じる
convert somefile1.png somefile2.png -resize '200x200!' MIFF:- | compare -metric AE -fuzz '5%' - null:- 

、私のPerlスクリプトでこの値を得ることができますか?

マイコード:

my $s_command = 
    "convert " . $s_img1_path . " " . 
    $s_img2_path . " -resize '" . 
    $N_IMAGEMAGICK_IMG_SIZE . "x" . $N_IMAGEMAGICK_IMG_SIZE . 
    "!' MIFF:- | compare -metric AE -fuzz '5%' - null:-"; 

my $s_out = `$s_command`; 

しかし、私は$のS_OUTでの戻り値を取得することはできません。さらに、この値はstdout自体に行くのですが、なぜですか?

+0

'my $ com = 'find ./parse_CDATA -type f'; my @files = \ '$ com \'; chomp @files; 'このようなパイプをperlで使うことができます!! – AbhiNickz

+4

convert | compareの出力がSTDOUTではなくSTDERRになることがあります。 – toolic

+3

あなたの英語はとても流暢であることを指摘できますか? "さらに"正しく使用している場合は、ほとんどのネイティブスピーカーより先に進んでいます: –

答えて

0

私は、次のコードを実行しました。(私は実際には、このコードに対してgrepを実行した)予想通りだった

#!/usr/bin/perl -w 
use strict; 

my $cmd = "grep strict test.pl -n|cut -c1-12"; 
my $result = `$cmd`; 
print $result; 

出力STDOUTた:

2:use strict 
4:my $cmd = 

私はprint行をコメントアウトするとSTDOUTには出力がありませんでした。 問題はSTDERRと何か関係があるかもしれませんが、確認する必要があります。

+0

@ダニエルは質問のあなたのコメントを見た。それはうまくいった – yonyon100

関連する問題