Wert eines Wertes einer Variablen
Wert eines Wertes einer Variablen
Hallo liebe Community,
ich bin Neuling auf dem Gebiet der Scripte.
Gerade bin ich dabei mir ein Script zu basteln welches die Funktion benötigt den Wert eines Wertes einer variablen auszugeben.
Als Beispiel:
#!/bin/bash
bla=name
blubb=bla
echo ${$blubb}
Das "echo" soll nun auf der Konsole "name" ausgeben.
Allerdings bekomme ich durch Modifikation der "echo"-Zeile entweder Fehlermeldungen oder "bla" auf der Konsole ausgegeben.
Gesucht habe ich nun schon ziemlich lange und selbst Script-User die ich persönlich kenne konnten mir bisher nicht helfen.
Könnt ihr mir vielleicht helfen?
Grüße!
Tigertim
ich bin Neuling auf dem Gebiet der Scripte.
Gerade bin ich dabei mir ein Script zu basteln welches die Funktion benötigt den Wert eines Wertes einer variablen auszugeben.
Als Beispiel:
#!/bin/bash
bla=name
blubb=bla
echo ${$blubb}
Das "echo" soll nun auf der Konsole "name" ausgeben.
Allerdings bekomme ich durch Modifikation der "echo"-Zeile entweder Fehlermeldungen oder "bla" auf der Konsole ausgegeben.
Gesucht habe ich nun schon ziemlich lange und selbst Script-User die ich persönlich kenne konnten mir bisher nicht helfen.
Könnt ihr mir vielleicht helfen?
Grüße!
Tigertim
Re: Wert eines Wertes einer Variablen
So sollte es gehen:
PS: willkommen im Forum!
Code: Alles auswählen
echo ${!blubb}
Re: Wert eines Wertes einer Variablen
Hallo 4A4B,
vielen Dank für deine Antwort!
Ich habe deinen Vorschlag folgendermaßen ausprobiert:
Leider hat dies nicht funktioniert.
Was ich zu Anfang noch vergessen hatte:
Ich benutze ein Debian 32 Bit (6.0.7) mit Linux-Kernel 2.6.32.
Danke für die freundliche Begrüßung
vielen Dank für deine Antwort!
Ich habe deinen Vorschlag folgendermaßen ausprobiert:
Code: Alles auswählen
#!/bin/bash
bla=name
blubb=bla
echo ${!blubb}
Was ich zu Anfang noch vergessen hatte:
Ich benutze ein Debian 32 Bit (6.0.7) mit Linux-Kernel 2.6.32.
Danke für die freundliche Begrüßung
Re: Wert eines Wertes einer Variablen
Was heißt denn "Leider hat dies nicht funktioniert"?
Was passiert?
Fehlermeldung?
Was genau hast du gemacht?
Skript eingegeben und dann gespeichert, nehme ich mal an. Und auch ausführbar gemacht?
Und was passiert dann, wenn du es aufrufst?
Bei mir geht es:
Was passiert?
Fehlermeldung?
Was genau hast du gemacht?
Skript eingegeben und dann gespeichert, nehme ich mal an. Und auch ausführbar gemacht?
Und was passiert dann, wenn du es aufrufst?
Bei mir geht es:
Code: Alles auswählen
radfahrer@farnsworth:~$ ./blubb.sh
name
radfahrer@farnsworth:~$
Re: Wert eines Wertes einer Variablen
Okay, also mir ist direkt aufgefallen, dass ich meine Scripte anders ausführe.
Ich rufe meine Scripte mit "sh [name]" auf.
Mit "./wert_eines_wertes.sh" hats funktioniert, vielen Dank!!!
Aber woran liegt das?
Ich rufe meine Scripte mit "sh [name]" auf.
Code: Alles auswählen
tim@debian:~$ sh wert_eines_wertes
wert_eines_wertes: 4: Bad substitution
tim@debian:~$
Aber woran liegt das?
Re: Wert eines Wertes einer Variablen
Dann wird das Script von /bin/sh ausgeführt, welches bei Debian auf die dash verweist, die im Vergleich zur bash in der Funktionalität eingeschränkt istIch rufe meine Scripte mit "sh [name]" auf.
Wenn du das Script direkt aufrufst, wird die Shell aus der Shebang-Zeile verwendet, in diesem Fall /bin/bash
Re: Wert eines Wertes einer Variablen
bashism!4A4B hat geschrieben: echo ${!blubb}
Posix-konform:
Code: Alles auswählen
eval echo \$$blubb
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Wert eines Wertes einer Variablen
Ja, da hast du recht - wobei ich allerdings bei einer Shebang-Zeile "#!/bin/bash" erst mal davon ausgehe, dass ein Bashism nicht unerwünscht istrendegast hat geschrieben:bashism!4A4B hat geschrieben: echo ${!blubb}
Wenn das Script portabel sein soll, ist deine Lösung mit eval aber natürlich vorzuziehen.