BASH Variablensubstitution (?)


0

Ich habe das folgende Skript:

var1="var1value"
var2="var2value"
var3="var3value"

Ich möchte folgenden Code erstellen:

option=$1

myvar=`echo var$option`

Wenn die Option "1" ist, sollte die Variable var1value sein, wenn die Option "2" ist, sollte die Variable "var2value" sein usw.

Wie kann ich das machen?

Antworten:


0

Dies wird tun, was Sie wollen:

myvar=$(eval echo \$var$option)

Da evales sich jedoch um eine riskante Anweisung handelt, sollten Sie anstelle dieser Art von Variablennamen lieber ein Array verwenden, z.

var[1]="var1value"
var[2]="var2value"
var[3]="var3value"

option=$1

myvar=${var[$option]}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.