2012-11-25 111 views
0

我创建使用PHP CLI脚本,我想有cd我到根据我的命令行输入一个目录。我可以使用PHP CLI执行“cd”命令来更改目录吗?

虽然我可以得到PHP执行命令来回显输出(例如echo ls -al),但我无法让它们运行cd

我寻觅了很多网上找到了解决方案,但都拿出了空。

+1

据我所知'cd'是内置。你可以用bash加前缀:'/ bin/bash -c'cd ; ls''。这可能工作,不确定。 – ZeissS

回答

3

不能使用cd,因为它会在一个子shell运行,当你返回发出下一个命令前PHP中改变工作目录会丢失。

使用chdir代替。

+0

感谢您的快速回复,每个人。我只需创建一个bash脚本。 –

+0

对于具有类似目标的人,我的解决办法是放弃PHP CLI这一点。 'chdir'函数改变PHP脚本中的目录指针(这里不是我想要的结果)。使用“sh”命令的Bash脚本也不起作用。我不得不使用“source”命令(注意PHP CLI显然不允许执行源命令)。我的最终结果是基本上'源goto-dir.sh dirname',它执行的bash代码'CD /路径/ $ 1/web'(网页是文档根,$ 1是项目的名称 - 我希望有很多的项目,并需要一个快速的方式来到任何选定的文档根目录)。 –

1

您需要从PHP运行chdir,运行从exec, system, shell_execcd只改变子进程由PHP称为目录,每一个新的系统调用将开始在PHP当前工作目录。

相关问题