2016-04-28 89 views
2

我有我的Linux 64位運行一個Perl腳本,它看起來像這樣:perl的執行,其中輸入來自<(CMD2輸入)命令

my $ret = `/my/cmd option1 option2 <(/my/cmd2 input)` 

這工作在bash,但是當我嘗試執行相同的命令作爲Perl腳本中的反引號,它會抱怨:

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 |/my/cmd option1 option2'如果你想支持POSIX shell。 – andlrc