发送多行linux到PHP exec()

时间:2013-11-25 22:55:52

标签: php linux unix command-line

我正在尝试使用exec()处理多个unix调用,但第一个命令似乎对第二个没有影响:

exec('cd ../my/new/directory/');
echo exec('pwd')' //directory the PHP is in. not the new directory/

这里的交易是什么?

2 个答案:

答案 0 :(得分:3)

当您调用PHP的exec()时,PHP将fork一个新进程,exec(Unix系统调用)cd命令。然后父进程(PHP)将在子进程上wait完成。

因此,cd 仅在子进程中生效。在cd返回后,您的父进程(PHP)处于以前的状态。

答案 1 :(得分:0)

然后组合并与';'分开定义语句的结尾 $ x = shell_exec('cd ../my/new/directory/;pwd'); echo $ x;