2016-04-28 6 views
2

私は、Linuxの64ビットで動作し、それはこのようになりますPerlスクリプトを持っているから来ているコマンドを実行しますPerlスクリプトのバックティックと同じコマンドを実行すると、それは文句を言う:perlは、入力が<(CMD2入力)

sh: -c: line 0: syntax error near unexpected token `(' 

アイデア?

+1

、しかしください。あなたは 'perl-MConfig -E'say $ Config {sh} ''を実行し、出力が何であるか報告しますか? – Borodin

答えて

5

私は推測するあなたの/bin/shのbashにリンクされていない、試してみてください。

my $ret = `bash -c '/my/cmd option1 option2 <(/my/cmd2 input)'` 

は、あなたがして/bin/shがリンクしているものを確認することができます。私はすでに解決策を持っていることを実感

% ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 Apr 5 07:03 /bin/sh -> dash 
+0

ニースとシンプル。できます! – 719016

+1

@ 719016あなたのために働いてうれしいです。あなたは '/ my/cmd2 input | POSIXシェルをサポートしたい場合は/ my/cmd1 option1 option2'と入力します。 – andlrc