2012-08-13 203 views
1

我想通過一個Perl腳本,如下所示Perl的exec命令失敗

$cmd = 'cat <(ssh -o \"StrictHostKeyChecking no\" dev-adm1 \'sudo cat /etc/httpd/conf/httpd.conf\')'; 
exec $cmd; 

這個執行shell命令時拋出一個錯誤

sh: -c: line 0: syntax error near unexpected token `(' 
sh: -c: line 0: `cat <(ssh -o \"StrictHostKeyChecking no\" dev-adm1 'sudo cat /etc/httpd/conf/httpd.conf')' 

命令直接作用於殼但不是這樣。我錯過了什麼?

+1

你'EXEC()'貓,不肯付錢。貓沒有按」不用理解'()',使用'system()',否則從shell中建立並運行命令爲'YOUR_SHELL cat XXXX',然後換成perl。 – tuxuday 2012-08-13 12:46:12

回答

3

你用哪個shell來測試這個命令?

我的第一個猜測是,你的bash或ksh,而SH(使用perl的可執行程序)不知道「(」語法

+0

就是這樣。 – Aks 2012-08-13 12:43:59