如何使用PHP的exec运行带有子shell的shell命令?

时间:2015-07-14 10:59:07

标签: php bash shell command exec

使用PHP的exec运行此命令会给我语法错误,无论我是直接运行它还是将其放在额外的文件中并运行它。

time (convert -layers merge input1.png $(for i in directory/*; do echo -ne $i" "; done) output.png)

我认为问题是它创建了子shell,exec似乎无法处理。

Syntax error: word unexpected (expecting ")")

1 个答案:

答案 0 :(得分:0)

尝试简化命令:删除您不需要的外部()

您可以将$(for i in directory/*; do echo -ne $i" "; done)替换为 只是directory/*或者如果你是 担心空目录然后$(shopt -s nullglob; echo directory/*)

time convert -layers merge input1.png directory/* output.png

time convert -layers merge input1.png $(shopt -s nullglob; echo  directory/*) output.png