[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: