Befehl vor der Pipe in Script einlesen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von gismo82, 18.12.2008.

  1. #1 gismo82, 18.12.2008
    gismo82

    gismo82 Jungspund

    Dabei seit:
    28.11.2008
    Beiträge:
    22
    Zustimmungen:
    0
    Hi...

    ich habe vor ein Script zu schreiben, welches auf verschiedene Dateien angewendet werden soll. Diese Dateien unterscheiden sich leicht im Aufbau, was dann auch im Script berücksichtigt werden muss.

    Das Script rufe ich wie folgt auf:
    Code:
    cat <file> | ./shell_script.sh
    
    Das <file> kann sich ändern, was ich auch im Script berücksichtigen muss. Wie kann ich im Script den Ersten Teil der Pipe einlesen.


    Gruß Andreas
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bytepool, 18.12.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    na, die Pipe gibt das an die Standardeingabe von deinem Skript, ergo musst du die lesen. Typischerweise mit read.

    mfg,
    bytepool
     
  4. #3 gismo82, 18.12.2008
    gismo82

    gismo82 Jungspund

    Dabei seit:
    28.11.2008
    Beiträge:
    22
    Zustimmungen:
    0
    Sorry, aber ich sitze grad völlig auf dem Schlauch.

    Wie muss der Befehl denn aussehen?


    Gruß Andreas
     
  5. #4 bytepool, 18.12.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    z.B.
    Code:
    read foo
    
    Aber es sollte eigentlich jeder Befehl gehen, der sich seine Eingabe von der Standardeingabe holt.

    mfg,
    bytepool
     
  6. #5 Onkel Jürgen, 18.12.2008
    Onkel Jürgen

    Onkel Jürgen Doppel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    114
    Zustimmungen:
    0
    Ort:
    Tübingen
    naja du müsstest am anfang deines skriptes sowas wie:
    Code:
    read file
    und dann danach eventuell sowas wie eine case unterscheidung machen.
    Der du dann vertscheidene Paramater deiner File zuordnest oder so.

    grüße

    okay du warst schneller ;-)
     
  7. #6 gismo82, 18.12.2008
    gismo82

    gismo82 Jungspund

    Dabei seit:
    28.11.2008
    Beiträge:
    22
    Zustimmungen:
    0
    Ok,

    so bekomme ich den Inhalt des Files. Aber ich bräuchte den Namen des Files...

    Gruß Andreas
     
  8. #7 bytepool, 18.12.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    davon war bis jetzt nicht die Rede. Im uebrigen hast du dann einen ordentlichen Fehler in deiner Logik.
    Wie willst du denn von
    Code:
    cat <file> | ./shell_script.sh
    
    einen Rueckschluss auf den Namen der Datei erhalten, wenn der Name der Datei nicht in der Datei selbst steht?

    Wenn ich das richtig verstanden habe, hast du verschiedene Muster Strukturen fuer verschiedene Datei Typen, und davon haengt ab, wie die Datei bearbeitet werden soll. Da gibt es zig Moeglichkeiten das zu loesen, aber ich wuerde damit anfangen die Datei als Parameter zu uebergeben, und nicht einfach nur den Inhalt per Pipe.

    mfg,
    bytepool
     
  9. #8 gismo82, 18.12.2008
    gismo82

    gismo82 Jungspund

    Dabei seit:
    28.11.2008
    Beiträge:
    22
    Zustimmungen:
    0
    Ok...

    ich hatte gedacht, dass es so funktioniert...

    Dann werde ich mich mal daran machen, mein Script auf die Parameterübergabe umzuschreiben...

    Danke

    Gruß Andreas
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 bytepool, 18.12.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    ja, je nachdem was denn eigentlich "so funktionieren" soll... Du koenntest z.B. die Struktur der Datei untersuchen um auf den Typ zu schliessen, oder in die erste Zeile der Datei den Typ vorher reinschreiben und die erste Zeile dann beim weiteren Abarbeiten ignorieren.

    Aber du kannst nicht, wenn du nur den Inhalt uebergibst, vom Inhalt auf den Dateinamen schliessen, wenn der Dateiname nicht im Inhalt steht... Irgendwie logisch, oder?

    mfg,
    bytepool
     
  12. #10 gismo82, 18.12.2008
    gismo82

    gismo82 Jungspund

    Dabei seit:
    28.11.2008
    Beiträge:
    22
    Zustimmungen:
    0
    Ja, wenn man da so drüber nachdenkt, ist das schon logisch.

    Bin leider noch nicht so fit in der Shell-Programmierung. Hatte einfach gedacht, dass das möglich ist.

    Gruß Andreas
     
Thema:

Befehl vor der Pipe in Script einlesen

Die Seite wird geladen...

Befehl vor der Pipe in Script einlesen - Ähnliche Themen

  1. Centosbefehle

    Centosbefehle: Hallo ich habe ein Centos 7.2.15.11 image (mit Hdclone von Miray gemacht) Ich möchte das Image auf eine existierende Ubuntu installation...
  2. Kurzzusammenfassung der Befehle und Progr. für die shell

    Kurzzusammenfassung der Befehle und Progr. für die shell: Hallo zusammen, bei der Verbesserung eines meiner Scripte bin ich nach ausführlicher Recherche auf den Befehl (Prog?) "file" gestossen. Dieser...
  3. Befehlssequenz

    Befehlssequenz: Hallo zusammen, Ich bin ein Anfänger der Unix-Sprache und versuche gerade eine Befehlssequenz zusammen zu schustern, welche mir alle laufenden...
  4. Befehl beim Session beenden

    Befehl beim Session beenden: Hallo allerseits, ich habe vor ein Verzeichnis auf meinem Webserver zu verschlüsseln. Ich will, sobald ich darauf zugreifen muss/will eine...
  5. Zeile für Zeile auslesen und Befehl ausführen

    Zeile für Zeile auslesen und Befehl ausführen: Hallo Zusammen Ich habe folgendes Problem: Ich möchte eine Datei zeilenweise auslesen und jede Zeile als Pattern für grep verwenden. Die...