2012-08-13 204 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