我创建使用PHP CLI脚本,我想有cd
我到根据我的命令行输入一个目录。我可以使用PHP CLI执行“cd”命令来更改目录吗?
虽然我可以得到PHP执行命令来回显输出(例如echo ls -al
),但我无法让它们运行cd
。
我寻觅了很多网上找到了解决方案,但都拿出了空。
我创建使用PHP CLI脚本,我想有cd
我到根据我的命令行输入一个目录。我可以使用PHP CLI执行“cd”命令来更改目录吗?
虽然我可以得到PHP执行命令来回显输出(例如echo ls -al
),但我无法让它们运行cd
。
我寻觅了很多网上找到了解决方案,但都拿出了空。
不能使用cd
,因为它会在一个子shell运行,当你返回发出下一个命令前PHP中改变工作目录会丢失。
使用chdir
代替。
感谢您的快速回复,每个人。我只需创建一个bash脚本。 –
对于具有类似目标的人,我的解决办法是放弃PHP CLI这一点。 'chdir'函数改变PHP脚本中的目录指针(这里不是我想要的结果)。使用“sh”命令的Bash脚本也不起作用。我不得不使用“source”命令(注意PHP CLI显然不允许执行源命令)。我的最终结果是基本上'源goto-dir.sh dirname',它执行的bash代码'CD /路径/ $ 1/web'(网页是文档根,$ 1是项目的名称 - 我希望有很多的项目,并需要一个快速的方式来到任何选定的文档根目录)。 –
您需要从PHP运行chdir
,运行从exec, system, shell_exec
等cd
只改变子进程由PHP称为目录,每一个新的系统调用将开始在PHP当前工作目录。
据我所知'cd'是内置。你可以用bash加前缀:'/ bin/bash -c'cd; ls''。这可能工作,不确定。 –
ZeissS