【问题标题】:How to run a shell command with a sub shell with PHP's exec?如何使用带有 PHP exec 的子 shell 运行 shell 命令?
【发布时间】:2015-10-02 23:27:55
【问题描述】:

用 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 ")")

【问题讨论】:

  • 你能提供实际的错误信息吗?
  • 语法错误:单词意外(预期为“)”)

标签: php bash shell command exec


【解决方案1】:

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

您可以将$(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

【讨论】:

  • 简化的命令有效,但我仍然想知道原来的命令到底有什么问题,因为它在从 shell 运行时可以完美运行。
  • @user923487 不,我也没有发现任何问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
  • 2015-02-23
  • 2014-07-03
相关资源
最近更新 更多