Comment executer des commandes depuis un script

Résolu
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?

2 réponses

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
  2. helmii Messages postés 35 Statut Membre
     
    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