shell_exec 中的语法错误,但不在终端中

Syntax Error in shell_exec but not in terminal

我正在尝试 运行 一个 php 脚本并进行循环。这是我在终端中使用的代码,它有效:

for i in {1..60}; do printf "file '%s'\n" video.mp4 >>list.txt; done

但是,如果我尝试在我的 php 脚本中将其调用为 shell_exec():

shell_exec('for i in {1..60}; do printf "file '%s'\n" video.mp4 >>list.txt; done');

我收到错误:

PHP Parse error: syntax error, unexpected ''\n" video.mp4 >>list.txt; don' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ')' in /home/vagrant/Code/play/index.php on line 58

Parse error: syntax error, unexpected ''\n" video.mp4 >>list.txt; don' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ')' in /home/vagrant/Code/play/index.php on line 58

您必须转义单引号。

shell_exec('for i in {1..60}; do printf "file \'%s\'\n" video.mp4 >>list.txt; done');