Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führe ich Bash-Skripte aus PHP aus und vermeide Probleme mit dem Arbeitsverzeichnis?

Wie führe ich Bash-Skripte aus PHP aus und vermeide Probleme mit dem Arbeitsverzeichnis?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 02:35:30450Durchsuche

How to Execute Bash Scripts from PHP and Avoid Working Directory Issues?

Ausführen von Bash-Befehlen aus PHP

Beim Versuch, Bash-Skripte aus PHP mit der Funktion „shell_exec“ auszuführen, können Probleme frustrierend sein. Während Befehle wie ls ordnungsgemäß funktionieren, kann die Ausführung benutzerdefinierter Skripte fehlschlagen.

Dieses Problem entsteht häufig durch das aktuelle Arbeitsverzeichnis von PHP. Beim Aufrufen externer Befehle ist es wichtig sicherzustellen, dass auf das ausgeführte Skript aus dem richtigen Verzeichnis zugegriffen werden kann.

Lösung

Um dieses Problem zu beheben, verwenden Sie die Funktion chdir, um das zu ändern Arbeitsverzeichnis vorübergehend vor der Ausführung des Skripts:

<code class="php">$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);</code>

Diese Technik stellt sicher, dass sich das Skript „im“ vorgesehenen Verzeichnis befindet, bevor der Shell-Befehl aufgerufen wird. Der Pfad des Skripts kann im Funktionsaufruf chdir angegeben werden. Sobald die Skriptausführung abgeschlossen ist, wird das ursprüngliche Arbeitsverzeichnis mit chdir($old_path) wiederhergestellt.

Das obige ist der detaillierte Inhalt vonWie führe ich Bash-Skripte aus PHP aus und vermeide Probleme mit dem Arbeitsverzeichnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn