Mehrere Zeilen in eine Datei ausgeben

K

KleinerEisbaer

Grünschnabel
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!
 
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
 
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? :(
 
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...
 
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
 
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?
 
Was nicht klappt, ist, wenn ich vorher das hier mache:
Code:
touch /ein/bestimmter/pfad/test.txt      
echo $1 >>  /ein/bestimmter/pfad/test.txt
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
 
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
 

Ähnliche Themen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

.cfg Datei Analysieren und Zeilen Stellenweise abändern

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

skript zum löschen doppelter dateien

Zeilen löschen und ersetzen mit sed

Zurück
Oben