Likes Likes:  0
Resultaten 1 tot 11 van de 11
Geen
  1. #1
    [Perl] system() or exec(), zonder return value ajb...
    geregistreerd gebruiker
    128 Berichten
    Ingeschreven
    12/07/04

    Locatie
    Maastricht

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 14074043
    Ondernemingsnummer: nvt

    Thread Starter

    [Perl] system() or exec(), zonder return value ajb...

    Hallo allemaal,
    even een PERL vraagje...

    Ik heb een scriptje wat bepaalde commando's uitvoert, maar op het stukje code hieronder gaat het mis:

    Code:
                    $retval = system("/usr/lib/mailman/bin/rmlist -a $list");
                    if($retval != 0) { $retval = system("/usr/lib/mailman/bin/rmlist $list"); }
                    if($retval != 0) { system("/bin/echo"); }
    Dit is een stukje uit een foreach, dus daar haalt ie de $list value vandaan.

    In principe zou dit moeten werken, echter: "rmlist -a" geeft een ERROR return terug als er geen archief gevonden is. Hij voert zijn taak wel uit, maar geeft een error return terug: perl script FAALT en exit.

    Ik probeer dus nu het zo te maken dat ie:
    rmlist -a --> geen archief? --> rmlist zonder -a --> anders doe niets

    Dit werkt echter niet... exec heb ik ook geprobeerd, werkt ook niet echt.
    Hij stopt gewoon na dat stukje code.

    Enig idee hoe ik dit commando kan laten uitvoeren zonder een return value, zodat de plugin van hierboven niet faalt en alles met een SUCCESS afgerond wordt?

  2. #2
    [Perl] system() or exec(), zonder return value ajb...
    moderator
    7.022 Berichten
    Ingeschreven
    29/07/03

    Locatie
    Nijmegen

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    175 Berichten zijn liked


    Naam: Mike
    Bedrijf: admin.nu
    URL: www.admin.nu
    Registrar SIDN: Ja
    KvK nummer: 09139651

    is het niet zo bij perl en exec dat op moment hij je een commando niet uit kan voeren je gelijk een or erachter kan zetten als tweede argument.

    Code:
    exec("/usr/lib/mailman/bin/rmlist -a $list") or exec("/usr/lib/mailman/bin/rmlist $list");
    heb even snel voor je op perldoc nog zitten kijken
    The exec function executes a system command and never returns-- use system instead of exec if you want it to return. It fails and returns false only if the command does not exist and it is executed directly instead of via your system's command shell (see below).
    "Zo zijn ook wij één leverancier. Dé leverancier in gedegen Linux kennis, wanneer jij dat nodig hebt."
    Boek je admin vandaag nog via : www.admin.nu
    Gevestigd in Nederland en Moldavië

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  3. #3
    [Perl] system() or exec(), zonder return value ajb...
    geregistreerd gebruiker
    128 Berichten
    Ingeschreven
    12/07/04

    Locatie
    Maastricht

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 14074043
    Ondernemingsnummer: nvt

    Thread Starter
    Citaat Oorspronkelijk geplaatst door Mikey Bekijk Berichten
    heb even snel voor je op perldoc nog zitten kijken
    The exec function executes a system command and never returns-- use system instead of exec if you want it to return. It fails and returns false only if the command does not exist and it is executed directly instead of via your system's command shell (see below).
    Dat dacht ik dus ook, maar... blijkbaar faalt ie wel...

  4. #4
    [Perl] system() or exec(), zonder return value ajb...
    moderator
    7.022 Berichten
    Ingeschreven
    29/07/03

    Locatie
    Nijmegen

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    175 Berichten zijn liked


    Naam: Mike
    Bedrijf: admin.nu
    URL: www.admin.nu
    Registrar SIDN: Ja
    KvK nummer: 09139651

    Citaat Oorspronkelijk geplaatst door raqtweak.com Bekijk Berichten
    Dat dacht ik dus ook, maar... blijkbaar faalt ie wel...
    bij falen kun je or gebruiken, dit is terug te vinden in perldoc (exec())
    "Zo zijn ook wij één leverancier. Dé leverancier in gedegen Linux kennis, wanneer jij dat nodig hebt."
    Boek je admin vandaag nog via : www.admin.nu
    Gevestigd in Nederland en Moldavië

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  5. #5
    [Perl] system() or exec(), zonder return value ajb...
    geregistreerd gebruiker
    128 Berichten
    Ingeschreven
    12/07/04

    Locatie
    Maastricht

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 14074043
    Ondernemingsnummer: nvt

    Thread Starter
    Citaat Oorspronkelijk geplaatst door Mikey Bekijk Berichten
    bij falen kun je or gebruiken, dit is terug te vinden in perldoc (exec())
    Dit heb ik ook geprobeerd, precies zoals jij zei... Maar, werkt niet. Haal ik alle exec()'s weg, werkt het...

  6. #6
    [Perl] system() or exec(), zonder return value ajb...
    geregistreerd gebruiker
    3 Berichten
    Ingeschreven
    10/02/05

    Locatie
    Utrecht

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Code:
    if ( ! system("/usr/lib/mailman/bin/rmlist -a $list") ) {
            system("/usr/lib/mailman/bin/rmlist $list");
    }
    of

    Code:
    system("/usr/lib/mailman/bin/rmlist -a $list") &&
            system("/usr/lib/mailman/bin/rmlist $list");
    Maar als ik jou was, zou ik de eerste kiezen.

    Alhoewel mij niet helemaal duidelijk is wat je nou met je return value bedoeld. Is dat de output of de exit value van je commando?

  7. #7
    [Perl] system() or exec(), zonder return value ajb...
    geregistreerd gebruiker
    128 Berichten
    Ingeschreven
    12/07/04

    Locatie
    Maastricht

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 14074043
    Ondernemingsnummer: nvt

    Thread Starter
    Heb het uiteindelijk met:

    my $remove = `command`;
    opgelost... dat werkt wel...

  8. #8
    [Perl] system() or exec(), zonder return value ajb...
    BoFH
    1.034 Berichten
    Ingeschreven
    24/11/03

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Bedrijf: Vevida B.V
    Functie: Systeembeheerder
    Registrar SIDN: ja
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Citaat Oorspronkelijk geplaatst door raqtweak.com Bekijk Berichten
    In principe zou dit moeten werken, echter: "rmlist -a" geeft een ERROR return terug als er geen archief gevonden is. Hij voert zijn taak wel uit, maar geeft een error return terug: perl script FAALT en exit.
    Letterlijk "ERROR"? Werkt iets als:

    Code:
    my $retval = `/usr/lib/mailman/bin/rmlist -a $list`;
    if($retval == "ERROR") {
        `/usr/lib/mailman/bin/rmlist $list`;
    }
    print "done\n";
    Of geeft het commando een statuscode (0, 1, 99, 100) terug? In dat geval kan je de $? raadplegen, iets als:
    Code:
    my $retval = `/usr/lib/mailman/bin/rmlist -a $list`;
    if($? == -1) {
        `/usr/lib/mailman/bin/rmlist $list`;
    }
    print "done\n";
    http://perldoc.perl.org/functions/system.html

    //Edit: blijkbaar iets te lang met mn antwoord bezig geweest
    --
    VEVIDA Services, http://www.vevida.com

  9. #9
    [Perl] system() or exec(), zonder return value ajb...
    geregistreerd gebruiker
    3 Berichten
    Ingeschreven
    10/02/05

    Locatie
    Utrecht

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Citaat Oorspronkelijk geplaatst door raqtweak.com Bekijk Berichten
    Heb het uiteindelijk met:

    my $remove = `command`;
    opgelost... dat werkt wel...
    ???

    Wat heb je nu gedaan dan? Laat het eens in de context zien.

  10. #10
    [Perl] system() or exec(), zonder return value ajb...
    makes the world go around
    1.410 Berichten
    Ingeschreven
    21/07/02

    Locatie
    Almere

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: ja
    KvK nummer: 39077039
    Ondernemingsnummer: nvt

    de output van het commando komt in $remove, die kun je vervolgens uitlezen.

    iets als if (!$remove) kun je vervolgens gebruiken om volgende acties uit te voeren.

  11. #11
    [Perl] system() or exec(), zonder return value ajb...
    geregistreerd gebruiker
    3 Berichten
    Ingeschreven
    10/02/05

    Locatie
    Utrecht

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Almar. Ik begrijp wat die regel doet. Maar ik vraag mij af hoe hij de rest heeft opgelost. Daarmee bedoel ik:

    - Wordt er gecontroleerd op de output van het commando?
    - Wordt de exit code van het commando gebruikt.
    - Hoe zien de condities van het if statement er uit?

    In bovenstaande post heb ik termen voorbij zien komen die, IMHO, niet correct worden gebruikt. Het kan daarom zijn dat het nu toevallig werkt, maar dat zijn gekozen oplossing niet correct is. Vandaar mijn vraag hoe nu het hele stukje code eruit ziet.

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics