ubuntuusers.de

Mehrere Leerzeichen in (Text-)Variablen / Strings

Status: Gelöst | Ubuntu-Version: Xubuntu 14.04 (Trusty Tahr)
Antworten |

killercorny

Avatar von killercorny

Anmeldungsdatum:
24. März 2015

Beiträge: 53

Wohnort: Brandenburg

Moin an die Experten!

ich hab mal wieder ein an sich banales Problem bei dem ich nicht weiterkomme. Ich möchte bei einer Ausgabe per echo eine bestimmte Anzahl an Leerzeichen mit ausgeben. Das funktioniert leider nicht, es wird immer auf ein einziges beschnitten. Es liegt bestimmt am quoting, jedoch hab ich auch schon einige Variante erfolglos ausprobiert. Bei meinem Script wird in einer Schleife ein textstring zusammengesetzt und dort soll dann immer noch diese Leerzeichen eingefügt werden.

1
2
3
4
5
6
#!/bin/bash

spaces='              '

teststring=$(echo "abc" $spaces "def")
echo teststring: $teststring

Ausgabe:

teststring: abc def

Thomas_Do Team-Icon

Moderator
Avatar von Thomas_Do

Anmeldungsdatum:
24. November 2009

Beiträge: 8808

Versuchs mal so:

1
2
3
4
5
6
#!/bin/bash

spaces='              '

teststring="abc"$spaces"def"
echo teststring: "$teststring"

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Klar ist das eine Frage des "Quotings" ...

Warum hast Du ausgerechnet die $spaces nicht gequotet ??? - gerade die haben es doch nötig:

track@track:~$ spaces='              '
track@track:~$ echo "abc"$spaces"def"
abc def
track@track:~$ echo abc"$spaces"def
abc              def
track@track:~$ echo "abc${spaces}def"
abc              def 

Gleiches gilt in Zeile 6, aber das hat Thomas schon korrigiert.

LG,

track

killercorny

(Themenstarter)
Avatar von killercorny

Anmeldungsdatum:
24. März 2015

Beiträge: 53

Wohnort: Brandenburg

Danke Leute, habs hinbekommen. Mir war schon klar dass es nur am quoting liegen kann, aber damit hatte ich öfters Probleme. Naja, ich kann nur dazu lernen. ^^ Ich hatte einige Stellen wo ein qouting fehlte und dadurch gingen die Leerzeichen immer verloren. Bash ist halt etwas tricky...

Antworten |