PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell verschluckt Leerzeichen



lexa
07-09-2009, 21:22
Hi,

warum werden Leerzeichen der "date" Ausgabe im Shell-Script ignoriert? Gebe ich an der Console ein

$ date +"%b %e"
Sep 7
wird ordnungsgemäss "Sep 7" mit zwei Leerzeichen ausgegeben.

Weise ich das in einem Shell-Script (bash) zu, wird nur "Sep 7" ausgegeben:



DATUM=$(date +"%b %e")
echo $DATUM
# Ausgabe ist "Sep 7" statt "Sep 7"


Ich brauche den vollständigen String für ein nachfolgendes grep. Wo ist mein Denkfehler und was kann ich da tun? (OpenSuSE 10.3)

SOLVED!
Simpel: Wenn ich das Datum mit Anf.-Zeichen an echo übergebe, dann klappt es: echo "$DATUM"
Falls jetzt noch einer weiss, warum das so ist, immer her mit der Erklärung.

quinte17
07-09-2009, 23:16
da Datum insgesamt ja zu

echo Sep 7
extended, werden hierdurch 2 parameter an echo übergeben. die anzahl der leerzeichen wird natürlich nicht an echo übergeben ;)
mit gänsefüschen:


echo "Sep 7"

wird nur ein parameter übergeben, und dieser beinhaltet zufällig 2 leerzeichen ;)

es lebe die bash, bzw der echo befehl!

lexa
09-09-2009, 17:43
Danke.


es lebe die bash, bzw der echo befehl!

bash ACK, echo NACK.

Ich hatte zu sehr das DOS echo im Kopf. Da gibts keine Parameter :p