【发布时间】:2016-11-15 14:47:24
【问题描述】:
我正在尝试使用反引号在 Perl 中运行 Linux 命令。当我直接在 Linux 中运行它时它可以工作,但是当 Perl 通过反引号运行它时,我得到这个错误:
sh: -c: line 0: syntax error near unexpected token `>'
sh: -c: line 0: `(/src/storageUtil --diagnostic 2> >(tee >(cat >&2) >&1)) > log.txt'
有问题的代码行是:
$output = `(/src/storageUtil --diagnostic 2> >(tee >(cat >&2) >&1)) > log.txt`;
非常感谢任何有关可能导致此错误的原因的见解。
谢谢
【问题讨论】:
-
您可能在命令行中使用
bash测试了您的代码,但是当您从Perl 调用它时,您正试图通过sh运行它。 -
你真是个天才
-
我建议使用文件重定向,您通常最好
opening 管道可执行文件,然后自己处理文件 io,而不是外包给 shell。 -
@ysth:好的 - 评论现在转换为下面的答案。