Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Bash-Problem mit "while read" ?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Robby-TX5
    Gast

    Bash-Problem mit "while read" ?

    Hi

    ich habe folgendes Problem:

    Mein Script liest Informationen aus einer Datei, die anschließend weiter verarbeitet werden sollen. Um es simple zu machen, stehen in der Datei Name.txt die Namen "Klaus" und "Walter", die ausgelesen und unterschiedlich interpretiert werden.
    Code:
    #!/bin/bash
    #
    # testscript
    #
    
    admin_name="kein_Name_vorhanden"
    
    cat name.txt | while read name
    do
       case ${name} in
          Klaus) admin_name=${name}",_das_ist_gut" ;;
          Walter) admin_name=${name}",_das_ist_sogar_noch_besser" ;;
       esac
       printf "Admin-Name = %s \n" ${admin_name}
    done
    printf "Letzter eingelesener Admin-Name = %s \n" ${admin_name}
    
    exit 0
    Die Ausgabe sieht dann so aus:

    Code:
     ./testscript.sh
    Admin-Name = Walter,_das_ist_sogar_noch_besser
    Admin-Name = Klaus,_das_ist_gut
    Letzter eingelesener Admin-Name = kein_Name_vorhanden
    Obwohl die Schleifendurchläufe die Variable eindeutig verändern, besitzt die Variable am Ende den "alten" Urprungswert. D. h. auch, dass die While-Read-Schleife mit einer Kopie der Variablen arbeiten muss, welche aber nach am Ende der While-Schleife verloren geht.

    Wie komme ich denn an die veränderte Kopie der Variablen auch ausserhalb der Schleife?

    Thanks for helping.

    PS.: In einer "for ..... do" Schleife existiert das Problem nicht.
    PS.: Das Phänomen existiert auf Linux und AIX, mit verschiedene Kernel-Versionen ( 2.6.14.3, i386; 2.6.5-7.97-pseries64, AIX 5.1 ML5) mit der bash als auch mit der ksh. Witziger Weise gibt die ksh unter AIX (und nur unter AIX) das für mich richtige Ergebnis raus.
    Geändert von Robby-TX5 (10-02-2006 um 10:49 Uhr)

Lesezeichen

Berechtigungen

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