Maison  >  Article  >  développement back-end  >  Pourquoi mes scripts Bash ne s’exécutent-ils pas depuis PHP ?

Pourquoi mes scripts Bash ne s’exécutent-ils pas depuis PHP ?

DDD
DDDoriginal
2024-11-04 21:00:02738parcourir

Why are My Bash Scripts Not Executing from PHP?

Exécution de commandes Bash à partir de PHP : dépannage des scripts non exécutés

Un utilisateur rencontre des difficultés pour exécuter un script Bash à partir d'un fichier PHP. Malgré les tentatives d'utilisation de shell_exec et de system, le script reste inexécuté. Cependant, d'autres commandes comme "ls" fonctionnent correctement en utilisant shell_exec.

Cause potentielle et solution :

Le problème provient très probablement de l'exécution du script à partir du mauvais répertoire. Pour résoudre ce problème, l'utilisateur doit remplacer le répertoire de travail actuel par le répertoire où réside le script avant de l'exécuter. Cela garantit le contexte correct pour l'exécution du script.

Extrait de code :

L'extrait de code suivant montre comment exécuter correctement le script Bash :

<code class="php">$old_path = getcwd();
chdir('/my/path/'); // Change to the script's directory
$output = shell_exec('./script.sh var1 var2');
chdir($old_path); // Return to the previous working directory</code>

Dans ce code, getcwd() récupère le répertoire de travail actuel, chdir('/my/path/') définit le répertoire de travail sur le chemin du script, shell_exec('./script.sh var1 var2') exécute le script avec les arguments donnés, et chdir($old_path) revient au répertoire de travail précédent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn