PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variable in Variableabfrage



Mathew73
16-12-2005, 09:15
Hallo zusammen,

ich möchte gerne mit einer Variable eine andere Variable erstellen.

Beispiel:
VARIABLE1="EINS"
VARIABLE2="ZWEI"
$VARIABLE1$VARIABLE2="NEU"

echo $EINSZWEI

Also in VARIABLE1 ist EINS gesetzt und VARIABLE2 ist ZWEI gesetzt. Dann soll er eine neue Variable EINSZWEI mit NEU setzen.

Aber das klappt net :eek:

Bonusfrage: Mit Strg+V und ESC kann ich im vi Escape-Sequenzen generieren. Weiß jemand zufällig wie ich den Bondrucker Epson TM-T88III dazu bringe, dass er schneidet ??? :-)

ninguno
16-12-2005, 11:35
eval "$VARIABLE1$VARIABLE2=NEU"
ps: den bonus kann ich mir leider nicht verdienen :D

Joghurt
16-12-2005, 13:07
Weiß jemand zufällig wie ich den Bondrucker Epson TM-T88III dazu bringe, dass er schneidet ??? :-)Wahrscheinlich mit Form Feed (FF), ASCII Code 0C, also (Strg+V gefolgt von) Strg+L

Mathew73
16-12-2005, 13:09
Danke für Deine Antwort. Denke aber, ich habe das falsche Problem geschildert. Hier ein neues Beispiel was eher zutrifft.

ZEILENPOSITION=1
ANZAHL1=1
ANZAHL2=3
ANZAHL3=5

while [ $ZEILENPOSITION -le 5 ]
do
echo $ANZAHL$ZEILENPOSITION
ZEILENPOSITION=$[$ZEILENPOSITION+1]
done

Führe ich das aus, sehe ich die Zahlen 1 bis 5 weil die Variable $ANZAHL leer ist und die Variable $ZEILENPOSITION die Zahlen 1 bis 5 erhält.

Der soll aber die Variable $ANZAHL1, $ANZAHL2, $ANZAHL3.... anzeigen wobei dann die 1, 2, 3... aus der $ZEILENPOSITION kommen.

Hoffe habe das richtig erklärt. Habe das zwar ebenfalls mit eval probiert zu lösen, aber ich denke, dass ist für das obige der falsche Befehl im Gegensatz zu meiner ersten Erklärung, da passt der ja genau. :rolleyes:

Hoffe Du kannst mir noch mal helfen, da mir das eine Menge Programmcode ersparen würde.

ninguno
16-12-2005, 13:26
so?
for ZEILENPOSITION in $(seq 3) ; do eval "echo \$ANZAHL$ZEILENPOSITION"; done

Joghurt
16-12-2005, 13:28
eval echo \$ANZAHL$ZEILENPOSITION
Betreffs des Druckers: Die Hexfolge 1D 56 00 sollte das tun, was du willst. Google ist dein Freund ;)

http://www.epson.de/fileadmin/content/files/RSD/downloads/escpos.pdf

Mathew73
16-12-2005, 15:05
also mit dem Bondrucker hat geklappt, einfach ein ^[i0 senden :)

Das mit dem eval klappt auch soweit, aaaaaaaber ich bleibe noch an einer Sache hängen :confused:

eval echo -n "\$ANZAHL$ZEILENPOSITION" >> /tmp/test.txt

klappt wunderbar.

Nur wie muss ich das Regeln, wenn ich eine if-Anweisung habe ???
...
if [ "$ANZAHL1" = "" ]
...
if [ "$ANZAHL2" = "" ]
...
ich habe:
if [ "eval \$ANZAHL$ZEILENPOSITION" = "" ]
probiert, aber das klappt net :eek:

Sie Smileys sind ja echt witzig hier :cool:

Mathew73
16-12-2005, 16:06
Hallo zusammen,

ich nutze jetzt Variablen nach dem Typ:

ANZAHL[$ZEILENPOSITION]="huhu"

und lasse die mit

echo ${ANZAHL[$ZEILENPOSITION]}

wunderbar anzeigen.

Damit habe ich meine aktuellen Probleme erst mal gelöst. Leider muss ich natürlich alle Variablen auf den neuen Typ umstellen :-( Aber egal, dafür klappts später bessa :-)

Also, vielen Dank an Euch.