Comment executer des commandes depuis un script
Résolu
helmii
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
helmii Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
helmii Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
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?
A voir également:
- Comment executer des commandes depuis un script
- Invite de commandes - Guide
- Script vidéo youtube - Guide
- Commandes terminal mac - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
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.
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
#!/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
$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