从命令行在.php文件中运行shell命令
我有一系列的shell命令,我想放进一个程序中,并从命令行执行程序。我决定使用PHP实现这一点,因此目前我正在尝试运行最基本的shell命令 另存为build.php从命令行在.php文件中运行shell命令,php,shell,Php,Shell,我有一系列的shell命令,我想放进一个程序中,并从命令行执行程序。我决定使用PHP实现这一点,因此目前我正在尝试运行最基本的shell命令 另存为build.php <?php shell_exec('cd ..'); echo "php executed\n"; ?> 输出 php executed Php执行正确,但我仍然在同一个目录中。如何让shell_exec(…)成功调用shell命令?您需要更改PHP中的cwd(当前工作目录)。。。通过exec()执行的任何cd命令
<?php
shell_exec('cd ..');
echo "php executed\n";
?>
输出
php executed
Php执行正确,但我仍然在同一个目录中。如何让shell_exec(…)成功调用shell命令?您需要更改PHP中的
cwd
(当前工作目录)。。。通过exec()
执行的任何cd
命令及其姊妹函数将只影响exec()调用的shell以及在shell中执行的任何操作
<?php
$olddir = getcwd();
chdir('/path/to/new/dir'); //change to new dir
exec('somecommand');
somecommand
将在您启动PHP脚本的任何目录中执行-您在一行之前执行的cd
将不再存在,本质上是一个空操作
请注意,如果您执行了以下操作:
<?php
exec('cd /path/to/new/dir ; somecommand');
您需要更改PHP中的cwd
(当前工作目录)。。。通过exec()
执行的任何cd
命令及其姊妹函数将只影响exec()调用的shell以及在shell中执行的任何操作
<?php
$olddir = getcwd();
chdir('/path/to/new/dir'); //change to new dir
exec('somecommand');
somecommand
将在您启动PHP脚本的任何目录中执行-您在一行之前执行的cd
将不再存在,本质上是一个空操作
请注意,如果您执行了以下操作:
<?php
exec('cd /path/to/new/dir ; somecommand');
您对cd..
有什么期望?脚本运行自己的shell。我不相信有什么方法可以让脚本更改您的shell。@Alimaudianpour我希望转到父目录您可以这样做:shell_exec('ls../)代码>仅获取上一个目录列表。不能更改目录使用更改PHP脚本的工作目录。默认工作目录为“”,即运行脚本的当前工作目录。您可以使用获取当前工作目录。最后,PHP脚本无法更改调用shell的目录。您对cd..
有什么期望?脚本运行自己的shell。我不相信有什么方法可以让脚本更改您的shell。@Alimaudianpour我希望转到父目录您可以这样做:shell_exec('ls../)代码>仅获取上一个目录列表。不能更改目录使用更改PHP脚本的工作目录。默认工作目录为“”,即运行脚本的当前工作目录。您可以使用获取当前工作目录。最后,PHP脚本无法更改调用shell的目录。