PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei auslesen mit while



geist_der_foren
29.06.2004, 10:08
Hi @all,

ich hab ein kleines Prob, ich möchte eine datei auslesen mit einer While schleife, aber das format ist nicht so wie ich ihn erwarte.
Das File mit dem Daten heist CMD_ALIAS in dem Folgendes Drin steht:
Cmnd_Alias RCMYSQL_RECHTE = /usr/sbin/rcmysql status, \
/usr/sbin/rcmysql start, \
/usr/sbin/rcmysql stop, \
/usr/sbin/rcmysql restart

Ich hab Test haber folgendes Versucht:
Datei_Cmd_Alias=CMD_ALIAS

while read LINE
do
echo "$LINE"
done < $Datei_Cmd_Alias

Die Ausgabe der While Schleife siht aber dann folgendermasen aus, alles in einer Zeile:
Cmnd_Alias RCMYSQL_RECHTE = /usr/sbin/rcmysql status, /usr/sbin/rcmysql start, /usr/sbin/rcmysql stop, /usr/sbin/rcmysql restart

Und nicht so wie ich es erwartet habe und zwar so:
Cmnd_Alias RCMYSQL_RECHTE = /usr/sbin/rcmysql status, \
/usr/sbin/rcmysql start, \
/usr/sbin/rcmysql stop, \
/usr/sbin/rcmysql restart
Hat vielleicht jemand eine idee wie ich das lösen könnte ?
Danke schon mal im voraus.

hinne
29.06.2004, 10:28
du könntest in die while schleife nach dem echo "$line" noch ein newline einbauen. weiss jetzt nicht genau wie es mit echo geht. evtl einfach eine zeile mit echo "" oder so etwas.

geist_der_foren
29.06.2004, 11:24
@hinne

Danke für dein Post.
Also das habe ich auch schon versucht, aber nicht funktioniert.
Mit echo (bash) kann gibt ein option -e mit der man z.B. \n für newline machen könnte. Mir ist gerade aufgefallen, dass es alle in einer Zeile anzeigt wird, weil die "\" am Schluss einer jeden Zeile besagen, dass die naechste Zeile die Fortsetzung ist. Vielleicht kann ich das maskiren ?! Mal schauen, ich werde das noch mal austesten.

clone
29.06.2004, 13:08
du könntest mal probieren, am ende eine zweites "\" anzuführen

------------------------------
/usr/sbin/rcmysql status, \\
-------------------------------
Datei_Cmd_Alias=CMD_ALIAS

while read LINE
do
echo $LINE"\"
done < $Datei_Cmd_Alias

-------------------------------

kanns leider nicht ausprobieren aber es müsste funktionieren

mfg clone

meez
29.06.2004, 21:43
Das Problem ist, dass der CR im File maskiert wird...
So kannst dus umgehen:

echo "$LINE" | sed 's/,/\\\n/g'