2016-08-31 2 views
0

Je souhaite exécuter la commande ci-dessous à partir de shell_script dans l'environnement Linux. J'ai essayé dans toute la méthode de PHP pour exécuter ce script, mais cela ne fonctionne pas. Dans le terminal lorsque je cours at 12:39 <<< "mkdir newfolder" il est en cours d'exécution et la tâche est la planification. Mais quand j'essaye le même script pour exécuter en php en utilisant shell_exec il ne fonctionne pas.Exécuter à la commande de la page php avec l'entrée de la ligne de commande

Vous pouvez comprendre les problèmes lorsque vous tapez at 12:39 il vous montrera pour mettre l'entrée et appuyez sur Ctrl + d pour terminer l'exécution. pour faire cela en une seule ligne ici j'utilise <<<

Quelqu'un peut-il suggérer comment puis-je exécuter ce script à partir du PHP?

Répondre

2

shell_exec utilise le système de shell tableau de bord par défaut: pour vous assurer que l'exécution php -r 'echo shell_exec("echo $0");' et il affichera « sh », et Dash n'a pas l'opérateur de redirection < < <.

Au lieu de cela, vous pouvez forcer l'utilisation de Bash et faire quelque chose comme:

shell_exec('/bin/bash -c \'at 12:39 <<< "mkdir newfolder"\''); 

Espérons que cela aidera.

+0

merci Yacine pour votre réponse, le script que vous avez mentionné renvoie false et aussi la tâche n'est pas non plus de planification. pouvez-vous s'il vous plaît essayer ceci et me suggérer une réponse. –

+0

si j'exécute ce 'php -r 'echo shell_exec (" echo $ 0 ");' 'dans le terminal alors ça fonctionne bien mais quand je cours en utilisant shell_exec' shell_exec ('/bin/bash -c \ 'à 12 : 39 <<< "mkdir newfolder" \ ''); 'cela ne fonctionne pas –

+0

Exécutez-vous le script en utilisant la commande php ou depuis le serveur web? –