根据 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
这是不正确的。
应该做同样的事情,就像:
#!/bin/sh /bin/sh
它相当于运行命令 /bin/sh /bin/sh
它将试图解释 /bin/sh
作为一个shell脚本。
实际相当于你想要的是:
pcntl_exec("/bin/sh", ["-c", "/bin/sh"]);