我正在尝试使用 exec()
处理多个 UNIX 调用,但第一个命令似乎对第二个命令没有影响:
exec('cd ../my/new/directory/');
echo exec('pwd')' //directory the PHP is in. not the new directory/
这是怎么回事?
最佳答案
当您调用 PHP 的 exec()
时,PHP 将fork
一个新进程,并且 exec
(Unix 系统调用)cd
命令。然后,父进程 (PHP) 将等待
子进程完成。
因此,cd
仅在子进程中生效。 cd
返回后,您的父进程 (PHP) 处于与之前相同的状态。
关于php - 将多行linux发送到PHP exec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20205182/