php функция pcntl_exe c ("/ bin / sh", "/ bin / sh") - PullRequest
0 голосов
/ 28 апреля 2020

Согласно php руководству , функция 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

1 Ответ

0 голосов
/ 28 апреля 2020

Это неверно:

должно делать то же самое, что и:

#!/bin/sh
/bin/sh

Это эквивалентно выполнению команды /bin/sh /bin/sh, которая попытается интерпретировать /bin/sh как сценарий оболочки.

Фактический эквивалент того, что вы хотите, будет:

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