Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Bash Befehl in Perl Script starten

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jul 2003
    Beiträge
    398

    Bash Befehl in Perl Script starten

    Hallo zusammen,

    ich möchte in einem Perl Script das die Mail Adresse via ldap ausliest einen Bash Befehl ausführen.

    Das Script dieht wie folgt aus.

    Code:
    #!/usr/bin/perl
    # Parameter: Username, PDF File
    use MIME::Entity;
    ### get the ARGS
    $to = 'ldapsearch -LLL cn= $ARGV[0] mail -h 192.168.0.1 -x | grep mail | cut -d" " -f2-';
    $pdffile = $ARGV[1];
    ### set some vars
    $mailpipe = '| /usr/lib/sendmail -t -oi';
    $from = "root";
    $subject ="PDF File";
    $inhalt = "Your PDF print";
    # create the mail
    my $mail = MIME::Entity->build( Type    => 'text/plain',
                                    From    => $from,
                                    To      => $to,
                                    Subject => $subject,
                                    Data    => $inhalt
                                  );
    # attach the pdf file
    $mail->attach( Path     => $pdffile,
                   Type     => 'application/pdf',
                   Encoding => 'base64'
                 );
    # open mailpipe and send the mail
    open MAIL, "$mailpipe" or die "Could not open mailpipe \"$mailpipe\" !\n";
    $mail->print(\*MAIL);
    close MAIL;
    Es soll halt
    Code:
     ldapsearch -LLL cn= $ARGV[0] mail -h 192.168.0.1 -x | grep mail | cut -d" " -f2-
    ausgeführt werden.

    In der Varibale $ARGV[0] steht der Benutzername drin.

    Wie kann ich diesesen Befehl im Script ausführen?

    Danke schon einmal.

    MfG
    Dominic

  2. #2
    Registrierter Benutzer Avatar von smoon
    Registriert seit
    Sep 2004
    Beiträge
    379
    Sollte mit system funktionieren. Siehe auch `perldoc -f system'. Also etwa so:
    Code:
    system ("ldapsearch -LLL cn= " . $ARGV[0] . "mail -h 192.168.0.1 -x | grep mail | cut -d\" \" -f2-");

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jul 2003
    Beiträge
    398
    Moin,

    besten dank für die fixe Antwort.
    Werde es morgen mal direkt probieren.

    MfG
    Dominic

  4. #4
    Registrierter Benutzer
    Registriert seit
    Jul 2003
    Beiträge
    398
    Hallo.,

    leider klappt es nicht.
    Er gibt mit immer ein 0 als wert zurück.
    Oder muss ich das ganze anders Eintragen, da die E-Mail Adresse die die LDAP Abfrage liefert ja in die Varibale $to geschrieben werden soll?

    MfG
    Dominic

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jul 2003
    Beiträge
    398
    Hallo,

    wenn ich mit einfach mal ein Script zum testen erstelle und die Variable $ARGV[0] mit einem Namen fülle den es in LDAP gibt, gibt er mir auf der Console folgendes aus.
    Code:
    pdftest:# ./ldaptest
    test@domain.de
    0pdftest:#
    Also er schreibt mit unten in die letzte Zeile ganz an den Anfang diese 0.
    Wie bekomme ich die wech. Ich denke das ist der Fehler, dass er mir als E-Mail adresse diesen 0 Wert zurück gibt.

    Mein Testscript sieht woe folgt aus.

    Code:
    #!/usr/bin/perl
    # Parameter: Username, PDF File
    use MIME::Entity;
    ### get the ARG
    $ARGV[0] = "test";
    $to = system("ldapsearch -LLL cn=" . $ARGV[0] . " mail -h 192.168.0.1 -x | grep mail | cut -d\" \" -f2-");
    print $to
    Danke schon einmal.

    MfG
    Dominic

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    Aus Sicht des Scirpts völlig in Ordnung - system endete erfolgreich, also Rückgabewert 0.

    in dem Fall verwendest du besser qx anstatt system...

    http://de.selfhtml.org/perl/funktion...aufrufe.htm#qx
    http://de.selfhtml.org/perl/funktion...ufe.htm#system
    Ich bin root - ich darf das.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jul 2003
    Beiträge
    398
    Moin,

    geile Sache mit dem qx klappt es 100 pro.

    Besten Dank.

    MfG
    Dominic

Ähnliche Themen

  1. (LFS) Der Anfang :)
    Von HellTron im Forum Kompilieren von Kernel und Sourcen
    Antworten: 92
    Letzter Beitrag: 15.07.06, 10:56
  2. Ganzes Bash Script mit Nice Level 19?
    Von Stolzi im Forum Linux Allgemein
    Antworten: 5
    Letzter Beitrag: 27.07.05, 10:09
  3. Online Photoalbum, mit welchem Linux Programm erstellen?
    Von hiTCH-HiKER im Forum Anwendungen Allgemein, Software
    Antworten: 16
    Letzter Beitrag: 07.05.05, 03:16
  4. nach ssh-verbindung script starten
    Von _-=Unreal=-_ im Forum Linux als Server
    Antworten: 0
    Letzter Beitrag: 22.01.04, 08:12
  5. PERL Script als Service im Hintergeund starten
    Von KaaHCeeH im Forum System installieren und konfigurieren
    Antworten: 3
    Letzter Beitrag: 21.11.01, 20:35

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •