Konflikt mit Perl

Diskutiere Konflikt mit Perl im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo erstmal, ich habe ein Problem bezüglich Perl mit Shell. Ich will mit perl einen Shell Code ausführen mit system(); Leider kommt folgender...

  1. heuri

    heuri Jungspund

    Dabei seit:
    05.05.2006
    Beiträge:
    12
    Zustimmungen:
    0
    Hallo erstmal,
    ich habe ein Problem bezüglich Perl mit Shell.
    Ich will mit perl einen Shell Code ausführen mit system();
    Leider kommt folgender Konflikt:
    Ich will eine Schleife ausführen:

    for i in $(find blablabla......

    anstatt aus i die Variable > $i zu machen ist unter Perl $( eine System Variable und macht daraus den EGID > Effective Group ID < also:

    for i in $(find blablabla...... > for i in 1001 1001find blablabla......

    Wie kann ich das umgehen?
    Gibt es eine alternative zu den $(????

    Vielen Dank!
     
  2. #2 supersucker, 05.05.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Probier mal den qx-operator (= quote and execute).

    Code:
    perldoc -f qx
    in der Konsole.
     
  3. heuri

    heuri Jungspund

    Dabei seit:
    05.05.2006
    Beiträge:
    12
    Zustimmungen:
    0
    Erstmal danke,
    leider kommt beim durchlauf mit

    qx() der gleiche fehler > mit dem **** EGID
    bei qw() macht er garnix im shellbefehl

    Gibt es sonst noch alternativen?
    DANKE! :hilfe2: :hilfe2:
     
  4. #4 Mµ*e^13.5_?¿, 05.05.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Einfach escapen, und gut ist.
    "for i in \$(find blablabla......"
     
  5. heuri

    heuri Jungspund

    Dabei seit:
    05.05.2006
    Beiträge:
    12
    Zustimmungen:
    0
    So ist i keine Variable mehr ;(
     
  6. #6 Mµ*e^13.5_?¿, 05.05.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Ich weiss zwar nicht genau, wie du das benutz, aber wenn du einfach "i" hinschreibst wird es auch nie eine Variable werden.
    Wenn du i als Perl-Variable benutzt musst du "$i" schreiben,
    und wenn du es als Shell-Variable benutzen willst muss du "\$i" schreiben.
    Wo liegt dabei also das Problem?
     
  7. heuri

    heuri Jungspund

    Dabei seit:
    05.05.2006
    Beiträge:
    12
    Zustimmungen:
    0
    Also ich benutze es so:
    for file in $(find -type f)
    do
    echo"Datei $file"
    ........

    somit ist file dann die variable $file zumindest wenn ich nur den shell teil in einer .sh ausführe
     
  8. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Eben, es soll als Shellvariable interpretiert werden und nicht als Perlvariable. Und genau dies ist Fall, wenn Du Mµ*e^13.5_?¿s Lösung mit dem Escapen nutzt. Alternativ kannst Du Deinen system-String in '...' einschliessen.

    Kleines Anschauungsbeispiel:

    Code:
    [~]$ perl -e 'system "a=123; echo \$a"'
    123
    
    Gruss, Xanti
     
  9. heuri

    heuri Jungspund

    Dabei seit:
    05.05.2006
    Beiträge:
    12
    Zustimmungen:
    0
    Vielen Dank jetzt funktioniert es :)
     
Thema:

Konflikt mit Perl

Die Seite wird geladen...

Konflikt mit Perl - Ähnliche Themen

  1. Konflikte beim Update...

    Konflikte beim Update...: Hi @ all! Ich hab ne Reihe an Konflikten beim System-Update, bei denen ich nicht recht weiß was ich tun soll. Hier erstmal mein Output:...
  2. Konflikt zwischen IDE und SATA Platte

    Konflikt zwischen IDE und SATA Platte: Hallo leute, ich habe mir gestern nen neuen Rechner gekauft und habe nun folgendes problem. damit ich meine alten daten behalten kann, habe...
  3. endlose Abhängigkeitskonflikte - openSUSE

    endlose Abhängigkeitskonflikte - openSUSE: Hi, ich habe zurzeit openSUSE 10.2 und möchte auf 10.3 updaten. Ich hab mir die CD runtergeladen und Update ausgewählt. Ich kann jetzt aber...
  4. C++ Konflikt?!

    C++ Konflikt?!: Hallo, da ich nicht so viel praktische Erfahrung im Umgang mit C++ habe, komme ich auch nicht auf die Lösung meines Probs! ich habe eine...
  5. Konflikt bei xine installation

    Konflikt bei xine installation: Hi, habe da ein Problem bei der Instalation von xine? llinux-01vc:/home/masen/Downloads # rpm -Uvh libxine1-1.1.3-0.pm.0.i686.rpm warning:...