PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Leichte bash-Frage



Ypsilon
01-09-2003, 11:08
Hi Leute,

ich kenne mich nur seehr wenig mit bash aus, und als ich gestern ein kleines Script schreiben wollte, bin ich auf folgendes Problem gestoßen:

Ich habe eine Variable $a und viele Variablen namens $x_1, $x_2, $x_3 etc.
$a enthält nun eine Zahl, die sich ändert, und abhängig von $a möchte ich den Inhalt von $x_1, $x_20 oder $x_5 usw. auslesen.
Eben den Inhalt der variablen x_$a.

Aber wie geht das?
Ich habe es mit so vielen unterschiedlichen Varianten probiert...

echo $x_$a führt schonmal zu einem falschen Ergebnis.
echo ${x_$a}, echo $("x_"$a) und all sowas auch.

Ich will eben nicht als Ergebnis von echo "x_10" oder so erhalten, sondern eben das, was in $x_10 steht!

Wie geht sowas, also wie kann ich den Inhalt von Variablen auslesen, deren Namen sich erst durch den Inhalt anderer Variablen zusammensetzt?

peschmae
01-09-2003, 14:57
Hallo,

geht es mit einem Array?

http://www.tldp.org/LDP/abs/html/arrays.html

Lies auch sonst mal ein bisschen den Advanced Bash Scripting Guide durch.

MfG Peschmä

pitu
02-09-2003, 06:36
local:~ # export a=10
local:~ # export x_10="test"
local:~ # export b="_$a"
local:~ # echo $b
_10
local:~ # eval echo \$x$b
test
local:~ # export x10="test"
local:~ # eval echo \$x$a
test
local:~ #


gruss,
pitu