Scripting/Bash
Hallo,
ich habe eine Frage zu Variablen in der Bash. Gibt es eine
Moeglichkeit, Variablennamen in einem Script basteln zu lassen?
Ich bin gerade dabei, ein ip-up Script von pppd zu modifizieren. Beim
Erstaufruf werden einige Umgebungsvariablen gesetzt; wird das Script
nicht korrekt beendet, wird es nach einer bestimmten Zeit wieder
aufgerufen. Die urspruenglichen Umgebungsvariablen werden dann als
Kommandozeilenargument uebergeben und beim Neustart Variablen mit
demselben Namen zugewiesen:
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
Eleganter waere es, wenn man per Script direkt auf die Variablennamen
Zugriff haette. Ich dachte an ein Konstrukt der Art
for i in IFACE TTY SPEED LOCAL REMOTE IPPARAM; do
PPP_$i=$1 # some magic to complete the var-name
shift
done
Vor allem die Parameterliste schreit ja geradezu danach, in Schleifen
verarbeitet zu werden. Als Variante fiele mir etwa dies ein:
ARG=1
for i in IFACE TTY SPEED LOCAL REMOTE IPPARAM; do
PPP_$i=${$ARG} # some more magic
ARG=$[$ARG+1]
done
Natuerlich stimmt oben die Syntax an den wichtigen Stellen ueberhaupt
nicht; ist nur ein Notbehelf zur Verdeutlichung. Die Frage ist, gibt es
ueberhaupt eine Moeglichkeit, so etwas zu machen? Wenn ja, wie stellt
man das am besten an?
Waere nett, wenn sich jemand dazu aeussern wuerde. Schoenen Gruss,
Andreas
Reply to: