Comment executer des commandes depuis un script
Résolu
helmii
Messages postés
35
Statut
Membre
-
helmii Messages postés 35 Statut Membre -
helmii Messages postés 35 Statut Membre -
Bonjour tt le monde je veux executer deux commande depuis un script et les voila:
sudo ifdown wlan1
sudo ifup wlan1
j ai essayer avec system "sudo ifdown wlan1" mais sa ne marche pas!quelqu un a-t-il une idée comment résoudre ce problème svp?
sudo ifdown wlan1
sudo ifup wlan1
j ai essayer avec system "sudo ifdown wlan1" mais sa ne marche pas!quelqu un a-t-il une idée comment résoudre ce problème svp?
2 réponses
-
Tu peux te servir de $? pour tenter de déterminer la cause, en utilisant la méthode recommandée dans la documentation https://perldoc.perl.org/functions/system.
#!/usr/bin/perl use strict; use warnings; my @args = ("sudo", "ifdown", "wlan1"); system (@args) == 0 or die "system @args failed: $?"; if ($? == -1) { print "failed to execute: $!\n"; } elsif ($? &127) { printf "child died with signal %d, %s coredump\n", ($? &127), ($? &128) ? 'with' : 'without'; } else { printf "child exited with value %d\n", $? >>8; }
Sinon, si l'utilisateur qui lance sudo en lançant ce script n'est pas un sudoer, et n'est pas autorisé à lancer ce script sans mot de passe, c'est un peu normal que cela échoue.
Dal -
Bonjour je l'ai résolu en changeant exec par system..voila ce qu'est devenu mon code en esperant que sa aidera quelquen:
$ENV{PATH} = "/sbin/";
system 'ifdown','wlan1';
system 'ifup','wlan1';
en faite le /sbin existe deja dans $PATH mais sans la 1ère ligne sa ne marche pas et je sais pa pourquoi..le plus important c'est que le problème n'est plus :)) merci pour tt le monde