Beim Ausführen von Bash-Befehlen aus einem PHP-Skript können Probleme auftreten, wenn das Arbeitsverzeichnis des Skripts vom Speicherort des Skripts abweicht der Befehl. Um dieses Problem zu beheben, ist es wichtig, das aktuelle Arbeitsverzeichnis in den gewünschten Speicherort zu ändern, bevor Sie den Shell-Befehl ausführen.
Um dieses Konzept zu veranschaulichen, betrachten Sie den folgenden PHP-Code:
<code class="php">$old_path = getcwd(); chdir('/my/path/'); $output = shell_exec('./script.sh var1 var2'); chdir($old_path);</code>
In diesem getcwd() speichert beispielsweise das aktuelle Arbeitsverzeichnis in der Variablen $old_path. Anschließend ändert chdir() das Arbeitsverzeichnis in den in /my/path/ angegebenen Pfad. Wenn nun ./script.sh var1 var2 ausgeführt wird, wird der Shell-Befehl in diesem neuen Verzeichnis ausgeführt. Nach der Befehlsausführung kehrt chdir() zum ursprünglichen Arbeitsverzeichnis zurück, wie es in $old_path gespeichert ist.
Durch die Übernahme dieses Ansatzes können Sie sicherstellen, dass der Shell-Befehl unabhängig vom aktuellen Kontext im richtigen Kontext ausgeführt wird Arbeitsverzeichnis Ihres PHP-Skripts. Diese Strategie ist besonders nützlich, wenn Sie mit Skripten arbeiten, die auf bestimmte Dateien oder Verzeichnisse relativ zu ihrem Speicherort angewiesen sind.
Das obige ist der detaillierte Inhalt vonWie führe ich Bash-Befehle aus PHP aus, während ich durch Verzeichnisse navigiere? Überlegungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!