php函数 pcntl_exec("binsh", "binsh")

问题描述 投票:0回答:1

根据 php手册,函数 pcntl_exec 等于syscall 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

php shebang pcntl execve
1个回答
0
投票

这是不正确的。

应该做同样的事情,就像:

#!/bin/sh
/bin/sh

它相当于运行命令 /bin/sh /bin/sh 它将试图解释 /bin/sh 作为一个shell脚本。

实际相当于你想要的是:

pcntl_exec("/bin/sh", ["-c", "/bin/sh"]);
© www.soinside.com 2019 - 2024. All rights reserved.