Variable Variable...

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
KingBonecrusher
Beiträge: 375
Registriert: 07.06.2005 09:48:43

Variable Variable...

Beitrag von KingBonecrusher » 30.05.2007 10:29:26

Ist es möglich sowas auszugeben:

Code: Alles auswählen

echo $( $VARIABLE )
Also die Variable soll aus einer Variablen kommen. Ich habe eine for Schleife, und den for Werten habe ich vorher einen Wert zugewiesen, das soll in der Schleife ausgegeben werden.

Code: Alles auswählen

TEST1=HALLO1
TEST2=HALLO2
TEST3=HALLO3

function TEST
 {
 for i in TEST1 TEST2 TEST3
  do
echo "$[$i]"
  done
 }
 
TEST
Also wie in der Schleife zu sehen gibt ja $i in der Schleife dann TEST1 aus, und TEST1 soll dann HALLO1 ausgeben.

Im Endeffekt sollte es für die Bash so aussehen: echo "$[$i]" = echo "$TEST1"

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 30.05.2007 10:59:32

Sorry, aber verstehe nicht so ganz, was du willst:

Code: Alles auswählen

TEST1=HALLO1
TEST2=HALLO2
TEST3=HALLO3

function TEST
{
  for i in $TEST1 $TEST2 $TEST3
  do
    echo "$i"
  done
}

TEST
So kommt zumindestens das "richtige" Ergebnis raus?
Oh, yeah!

KingBonecrusher
Beiträge: 375
Registriert: 07.06.2005 09:48:43

Beitrag von KingBonecrusher » 30.05.2007 11:26:30

Ja, genau das wollte ich net. Habe mich net ganz richtig ausgedrückt, also Grund ist, ich suche was mit grep, will aber alles ziemlich klein halten, deswegen folgende Idee

Code: Alles auswählen

TEST1=("SUCHBEGRIFF MIT LEERZEICHEN 1" "WERT1")
TEST2=("SUCHBEGRIFF MIT LEERZEICHEN 2" "WERT2")
TEST3=("SUCHBEGRIFF MIT LEERZEICHEN 3" "WERT3")

  for i in TEST1 TEST2 TEST3
  do
    echo "${ ($i) [1]}"
  done
Das Problem ist, ich kann zwar der for Schleife "SUCHBEGRIFF MIT LEERZEICHEN 1" zuweisen, aber es gibt ja keine Variable mit Leerzeichen! Das ist mein Problem. Und um viel Aufwand zu vermeiden, will ich das eben so machen.

Ich möchte bei Dieser Schleife eben als Ergebnis:

Code: Alles auswählen

WERT1
WERT2
WERT3

KingBonecrusher
Beiträge: 375
Registriert: 07.06.2005 09:48:43

Beitrag von KingBonecrusher » 30.05.2007 11:48:34

Ok, habe es "erstmal" so gelöst...

Code: Alles auswählen

lspci | grep -i "vga" | grep -i "NVIDIA CORPORATION" > /dev/null && BEFEHL1
lspci | grep -i "vga" | grep -i "INTEL CORPORATION" > /dev/null && BEFEHL2
lspci | grep -i "vga" | grep -i "ATI TECHNOLOGIES" > /dev/null && BEFEHL2
[code]

Das macht jetzt genau was ich will, auch ohne Schleife. Wenn das gesuchte gefunden wird, dann mache BEFEHL1. Sonst eben nichts :-)

Antworten