Anzeige:
Ergebnis 1 bis 2 von 2

Thema: ksh93: Lokalvariable überschreibt Globalvariable

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.03.2013
    Beiträge
    2

    Exclamation ksh93: Lokalvariable überschreibt Globalvariable

    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:

    Code:
    # 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:

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

    Code:
    var = Globalvariable 
    var = Lokalvariable 
    var = Globalvariable


    Bei Ausführung mit

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

    Code:
    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:


    Code:
    $ rpm -qa | grep -i ksh 
    ksh-93s-59.11.35
    Die Skripte liefen vorher unter AIX 6.1 TL08 SP02 in folgender ksh-Version:

    Code:
    $ 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-ksh nach Linux-ksh migriert werden, müssen deshalb weiter unter ksh laufen.

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

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.03.2013
    Beiträge
    2
    Kurz gefragt:

    Wie kann man ungewünschte Überschreiben einer Globalvariable durch eine gleichnamige Lokalvariable in Linux-ksh verhindern?

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •