php 函数 pcntl_exec("/bin/sh", "/bin/sh")

php function pcntl_exec("/bin/sh", "/bin/sh")

根据 php manual,函数 pcntl_exec 等于系统调用 execve

所以我认为

pcntl_exec("/bin/sh", ["/bin/sh"]);

应该做同样的事情:

#!/bin/sh
/bin/sh

然而我得到的结果是:# /bin/sh: 1: Syntax error: ")" unexpected

为什么?

php版本7.4.3(cli) Zend Engine v3.4.0

这是不正确的:

should do the same thing like:

#!/bin/sh
/bin/sh

它等同于 运行 命令 /bin/sh /bin/sh 将尝试将 /bin/sh 解释为 shell 脚本。

你想要的实际等价物是:

pcntl_exec("/bin/sh", ["-c", "/bin/sh"]);