Parametersubstitution & command not found

J

jostrn

Grünschnabel
Guten Abend,

meine bash und ich verstehen uns gerade nicht so gut, kann hier jemand zwischen uns vermitteln? ;)

Wie kann ich einer Variablen, die ich durch Parametersubstitution gebildet habe, einen Wert zuweisen?

Code:
31: server_2_name="srv01"
32: server_count=1
33: server_${server_count}_name="srv01"

./myscript: line 33: server_1_name=srv01: command not found

Wenn ich die Fehlermeldung richtig deute, kann ich den Variablenbezeichner bilden aber danach scheitert die Zuweisung... :think:

Vielen Dank für eure Hilfe
 
Das geht mit eval (man 1p eval).
Code:
server_count=1
eval "server_${server_count}_name=srv01"

echo $server_1_name
=> srv01
 
Für mich hört sich das so an, als ob ein Array dir bereits reichen würde. (Dynamische Variablengenerierung mit numerischen Countern ist imho nur sinnvoll, wenn man Arrays emulieren muss. Aber hier gehts auch ohne eval-Tricks.)
Code:
server_count=1
server_name[$server_count]="srv01"
((server_count++))
server_name[$server_count]="srvFOO"
echo "${server_name[@]}"
echo ${server_name[1]}
echo ${server_name[2]}
 
Ihr seid klasse, vielen Dank!

Habe es jetzt als Array realisiert, wobei mir die eval-Variante zwar vom Variablennamen besser gefiel, aber ich mach's lieber simpel als schön ;)

Vielen Dank nochmals,
Josef
 

Ähnliche Themen

Bash Skript: [[: not found Fehler

Windows clients können nicht mehr auf lange laufendes System zugreifen

Mail via Terminal will nicht

Ubuntu X / dbus problem

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

Zurück
Oben