Quantcast
Channel: Multimediaforum
Viewing all articles
Browse latest Browse all 4603

ksh93: Lokalvariable überschreibt Globalvariable

$
0
0
:flatto-hallo: Zusammen,

zunächst hoffe ich dass ihr mich Neuling willkommen heißt und ich hier die "Erlösung" finde.

Ich habe ein Problem durch eine Lokalvariable welche meine Globalvariable überschreibt. Zwecks Anschauung folgende Skript-Skizze:

shell Konsole
# LocalVar.sh test_loc_var() { typeset -t var var=Lokalvariable echo "var = $var" } typeset var=Globalvariable echo "var = $var" test_loc_var echo "var = $var"
Bei Ausführung mit
Code:

bash /bin/bash LocalVar.sh
erhalte ich das gewünschte Ergebnis:

shell Konsole
var = Globalvariable var = Lokalvariable var = Globalvariable
Bei Ausführung mit
Code:

ksh /bin/ksh LocalVar.sh
erhalte ich das ungewünschte Ergebnis:

shell Konsole
var = Globalvariable var = Lokalvariable var = Lokalvariable
Es muss aber in ksh funktionieren. Kann mir Jemand von euch bitte weiterhelfen? Es muss doch möglich sein auch unter Linux eine lokale Variable zu definieren, die nicht eine gleichnamige Globalvaribale überschreibt? Die Definition mit der Variable innerhalb der Funktion mit "local" hat leider nicht funktioniert.

Ganz wichtig: Ich nutze übrigens folgende ksh-Version:

shell Konsole
$ rpm -qa | grep -i ksh ksh-93s-59.11.35
Die Skripte liefen vorher unter AIX 6.1 TL08 SP02 in folgender ksh-Version:
shell Konsole
$ lslpp -l | grep -i ksh bos.rte.shell 6.1.8.15 APPLIED Shells (bsh, ksh, csh)
Die bestehenden Skripte sollen mit so wenig Anpassungen wie möglich von AIX nach Linux migriert werden, müssen deshalb weiter unter ksh laufen.

Vielen Dank für jeden noch so kleinen aber hilreichen Rat
:)

Viewing all articles
Browse latest Browse all 4603