echo und Variablen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mclien
Beiträge: 2468
Registriert: 06.12.2005 10:38:46
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Baustelle

echo und Variablen

Beitrag von mclien » 02.06.2009 23:30:26

Ich lerne gerade globbing und co (oder halt auch nicht):
Wo sind die spaces geblieben?:

Code: Alles auswählen

leviathan:~$ echo '#         ##'
#         ##
leviathan:~$ B='#           ##'
leviathan:~$ echo $B
# ##
Habe irgendwie schon alles durchprobiert was mir einfiel:
\ \ \ \ \ ##, B=" ", $B, ${B} usw. irgendwie fehlt mir der entscheidene Hinweis anscheinend...

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Re: echo und Variablen

Beitrag von armin » 02.06.2009 23:35:20

Code: Alles auswählen

echo "$B"
fehlt dir noch in deiner Sammlung. :)
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

mclien
Beiträge: 2468
Registriert: 06.12.2005 10:38:46
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Baustelle

Re: echo und Variablen

Beitrag von mclien » 02.06.2009 23:49:00

Danke. Man sollte echt wacher sein, wenn man solche Dinge ausprobiert... :roll:
EDIT:
Mist, wenns komplizierter wird stehe ich doch wieder auf der Leitung:

Code: Alles auswählen

leviathan:~$ Z12='##     ###'
leviathan:~$ A=1
leviathan:~$ B=2
leviathan:~$ echo "$Z$A$B"
12
klar, also:

Code: Alles auswählen

leviathan:~$ eval echo "\$Z$A$B"
## ###
auch doof....

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Re: echo und Variablen

Beitrag von armin » 03.06.2009 01:41:57

Schlafen scheint mir wirklich die passende Option zu sein.
Du setzt die Variable Z12, gibst danach aber Z aus. Oder ist das jetzt nur ein Fehler beim Übertragen gewesen? Bei mir funktioniert der Fall wie erwartet.

Code: Alles auswählen

armin@bluefire:~$ A='###   ####'
armin@bluefire:~$ B=1
armin@bluefire:~$ C=2
armin@bluefire:~$ echo "$A$B$C"
###   ####12
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

mclien
Beiträge: 2468
Registriert: 06.12.2005 10:38:46
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Baustelle

Re: echo und Variablen

Beitrag von mclien » 03.06.2009 06:48:34

Nicht ganz. Meine Absicht ist schon Z12 auszugeben,allerdings, wird es im zugünfitigen kompl. script mehrere Variablen geben:
Z11, Z12, Z13, Z21, usw. und im Verlauf des scriptes sollen andere VAribalen steuern welche davon ausgegeben werden, sprich aus anderen Variablen zusammen gesetzt werden.
Im Beispiel soll also der Wert von Z12 ausgegeben weeerden wobei A und B festlegen, ob es Z12 oder auch Z21 ist.:

Code: Alles auswählen

Z12='##     ###'
Z21='@@      @@    @@@'
A=1
B=2
echo "$Z$A$B" # wie muss ich hier vorgehen?
A=2
B=1
echo "$Z$A$B" # wie muss ich hier vorgehen?
und Ergebnis soll halt die Ausgabe mit allen Leerzeiche sein.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: echo und Variablen

Beitrag von ThorstenS » 03.06.2009 08:46:55

Was du machen willst, erreichst du über ein array:

Code: Alles auswählen

$ echo $0
bash
$
$ # ein array definieren:
$ Z[12]='##     ###'
$ Z[21]='@@      @@    @@@'
$
$ A=1
$ B=2
$ echo "${Z[$A$B]}"
##     ###
$
$ A=2
$ B=1
$ echo "${Z[$A$B]}"
@@      @@    @@@

mclien
Beiträge: 2468
Registriert: 06.12.2005 10:38:46
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Baustelle

Re: echo und Variablen

Beitrag von mclien » 04.06.2009 14:49:44

Ah, jetzt ja. Das hat geholfen. Was ich damit veranstallte ist hier zu finden:

http://nopaste.debianforum.de/21937
und hier, warum ich meines sowas zu brauchen:
http://debianforum.de/forum/viewtopic.p ... 8&start=45

Antworten