簡體   English   中英

從命令行在.php文件中運行shell命令

[英]Running shell commands in .php file from command-line

我有一系列的shell命令,我想將它們放入程序中並從命令行執行該程序。 我決定為此使用PHP,因此目前我正在嘗試運行最基本的Shell命令。

另存為build.php

<?php
shell_exec('cd ..');
echo "php executed\n";
?>

從命令行

php build.php

產量

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');

將在/path/to/new/dir執行一些somecommand 如果你這樣做

<?php
    exec('cd /path/to/new/dir');
    exec('somecommand');

somecommand將在您從中啟動PHP腳本的任何目錄中執行-您僅somecommand執行的cd將不再存在,並且實質上是空操作。

請注意,如果您執行以下操作:

<?php
    exec('cd /path/to/new/dir ; somecommand');

那么您的命令將在該目錄中執行...但是同樣,一旦該shell退出,該目錄更改將不復存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM