Comment executer des commandes depuis un script

Résolu/Fermé
helmii Messages postés 28 Date d'inscription mercredi 19 juin 2013 Statut Membre Dernière intervention 8 juillet 2013 - 1 juil. 2013 à 12:48
helmii Messages postés 28 Date d'inscription mercredi 19 juin 2013 Statut Membre Dernière intervention 8 juillet 2013 - 2 juil. 2013 à 11:44
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?
A voir également:

2 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
2 juil. 2013 à 09:52
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
0
helmii Messages postés 28 Date d'inscription mercredi 19 juin 2013 Statut Membre Dernière intervention 8 juillet 2013
2 juil. 2013 à 11:44
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
0