Mehrere Zeilen in eine Datei ausgeben

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von KleinerEisbaer, 09.07.2010.

  1. #1 KleinerEisbaer, 09.07.2010
    KleinerEisbaer

    KleinerEisbaer Grünschnabel

    Dabei seit:
    09.07.2010
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo Zusammen,

    hier meine Anfängerfrage:
    ich möchte mehrere Zeilen über ein Skript in eine Datei ausgeben.

    Ich dachte, es ginge ungefähr so:
    Code:
    echo 'Meine' >> text.txt
    echo 'Ausgabe' >> text.txt
    echo 'in' >> text.txt
    echo 'eine' >> text.txt
    echo 'Datei.' >> text.txt
    
    Ich war davon ausgegangen, dass
    1. auf diesem Wege eine Datei text.txt im selben Verzeichnis, in welchem das Skript liegt, angelegt wird
    2. meine jeweiligen Ausgaben hinter echo in diese Datei geschrieben und dabei
    3. jeweils angehängt werden.

    Leider funktionieren die Punkte 1 bis 3 nicht. :think:

    Ich würde mich freuen, wenn Ihr mir auf die Sprünge helfen würdet. :headup:

    Besten Dank schon mal im Voraus!
     
  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. zst

    zst Foren As

    Dabei seit:
    06.09.2006
    Beiträge:
    95
    Zustimmungen:
    0
    Hallo KleinerEisbaer,

    bei mir funktionieren die Punkte 1 bis 3 !!!
    Du bekommst vielleicht eine Fehlermeldung, die Du uns nicht verraten hast?

    Viele Grüße
    zst
     
  4. #3 KleinerEisbaer, 09.07.2010
    KleinerEisbaer

    KleinerEisbaer Grünschnabel

    Dabei seit:
    09.07.2010
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo zst,

    besten Dank erst mal für Dein Feedback. Dadurch bin ich auch gleich auf den Fehler gekommen, welchen ich in meinem realen Skript gemacht habe. Aber eins nach dem andern.

    Es ist nämlich so, dass das Skript aus SAP heraus aufgerufen wird.
    Dort sieht eine Zeile, welche man an einer bestimmten Stelle zum Kommandoaufruf eingeben muss ungefähr so aus:
    Code:
    /pfad/zum/skript.sh &F &P &C &J &O &S &N &n &I &o &T &R &D &s
    
    Die Dinger hinter dem Kaufmanns-Und sind Variablen, welche übergeben werden. Und genau um diese geht es mir.

    Es ist nämlich so, dass ich aus der Anwendung heraus nicht genau weiß, was genau bei diesen Variablen gelesen wird. Deshalb will ich sie einfach mit dem skript.sh lesen und ausgeben, da es ja ohnehin aufgerufen wird.

    Mein Fehler war, dass ich im Skript an Stelle des Dollar-Zeichens das Kaufmanns-Und benutzt hatte. Also hatte ich fälschlicherweise z.B.
    Code:
    echo &1 >> text.txt
    
    statt
    Code:
    echo $1 >> text.txt
    
    geschrieben. So weit so gut, Fehler erkannt und ausgebessert.

    Allerdings wird nun dennoch keine Datei text.txt erstellt. Wie gesagt, dass was sonst noch in dem Skript steht wird ausgeführt, aber das mit dem Erstellen der text.txt-Datei klappt nicht.
    Ansonsten steht eigentlich nur noch in dem Skript:
    Code:
    cp $1 /ein/bestimmter/pfad/datei_"$TIME".pdf
    rm $1                                    
    
    Vorher wird natürlich noch ein Zeitstempel erstellt. Hinter $1 verbirgt sich natürlich eine übergebene Datei.

    Warum klappt's aber nicht mit dem Erstellen der text.txt? :(
     
  5. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.056
    Zustimmungen:
    8
    die Datei wird in dem verzeichnis erstellt, in dem Du dich befindest, wenn Du das Script aufrufst - jedenfalls solange im Script kein cd in ein bestimmtes VZ gemacht wird...
     
  6. zst

    zst Foren As

    Dabei seit:
    06.09.2006
    Beiträge:
    95
    Zustimmungen:
    0
    Da hat marce natürlich Recht ... und außerdem könnte es sein, dass Du genau in einem Verzeichnis die Datei erstellen willst, in dem Du keine Schreibrechte hast.
    Gruß zst
     
  7. #6 KleinerEisbaer, 12.07.2010
    KleinerEisbaer

    KleinerEisbaer Grünschnabel

    Dabei seit:
    09.07.2010
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo nochmal,

    also komischerweise funktioniert es mit dem Anlegen des PDFs:
    Code:
    cp $1 /ein/bestimmter/pfad/datei_"$TIME".pdf
    rm $1
    
    Was nicht klappt, ist, wenn ich vorher das hier mache:
    Code:
    touch /ein/bestimmter/pfad/test.txt      
    echo $1 >>  /ein/bestimmter/pfad/test.txt
    
    Da das PDF in dem Ordner auch erstellt wird, bin ich davon ausgegangen, dass ebenso die text.txt-Datei kreiert wird.

    Vorher hatte ich den Pfad /ein/bestimmter/pfad auch schon weggelassen und es dirket in dem Ordner versucht, in welchem auch das Skript liegt. Und dieser Ordner hatte aller Rechte (777). Trotzdem wurde keine txt-Datei erstellt.

    Mache ich noch mit dem touch oder echo-Befehl etwas falsch?
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. HBtux

    HBtux Linuxer

    Dabei seit:
    13.04.2010
    Beiträge:
    72
    Zustimmungen:
    0
    Ort:
    $HOME
    Was bezweckt denn die Variable $1 in diesem Fall??

    Versuche mal
    Code:
    touch /ein/bestimmter/pfad/test.txt      
    echo "das ist ein Test" >>  /ein/bestimmter/pfad/test.txt
    
    cat /ein/bestimmter/pfad/test.txt
    
     
  10. #8 Remidemi, 04.08.2010
    Remidemi

    Remidemi Routinier

    Dabei seit:
    17.03.2008
    Beiträge:
    352
    Zustimmungen:
    0
    Ort:
    Südpfalz
    Hallo KleinerEisbaer

    Wie führst du das Script aus (zum testen)? Aus Sap oder per Hand auf der Konsole?
    Falls auf der Konsole, was genau schreibst du?

    Grüße
     
Thema: Mehrere Zeilen in eine Datei ausgeben
Besucher kamen mit folgenden Suchen
  1. mehrere zeilen im echo unix

Die Seite wird geladen...

Mehrere Zeilen in eine Datei ausgeben - Ähnliche Themen

  1. Text mit mehreren Zeilen und Sonderzeichen ersetzten

    Text mit mehreren Zeilen und Sonderzeichen ersetzten: Hallo zusammen, ich bin in Sachen Programmierung noch relativ neu und frisch unterwegs und bräuchte etwas Unterstützung wenn möglich. Im...
  2. Wie mehrere Zeilen zu einem Befehl verküpfen

    Wie mehrere Zeilen zu einem Befehl verküpfen: Hallo. ich habe eine sehr lange Datei mit so einem ähnlichen Inhalt IMAGE Server01-16_1295668 FRAG 2 22274L FRAG 3 052409 IMAGE...
  3. Text-Variable mit mehreren Zeilen

    Text-Variable mit mehreren Zeilen: Hallo, ich brauche für ein Skript eine Möglichkeit, in eine Textvariable in einer Schleife mehrere Zeilen einzufügen. Nach der Schleife...
  4. mit sed mehrere Zeilen löschen

    mit sed mehrere Zeilen löschen: Hallo, ich versuche aus einer Datei x Zeilen zu löschen, wobei x durch eine Variable definiert wird. Das Script soll in der BASH unter sun...
  5. Perl primer: Daten in mehreren Zeilen

    Perl primer: Daten in mehreren Zeilen: Hallo, ich habe eine Logdatei im Format >>>>>>>>>>>> tag1: Daten tag2: Daten Daten Daten tag3: Daten <<<<<<<<<<<<...