Springe zum Hauptinhalt

Bourne
next up previous contents
Next: while-Kommando Up: Ablaufsteuerung Previous: test-Kommando

for-Kommando

  • Beispiel:
    #!/bin/sh
    #
    # lsdir (Version 1): 
    # Aufruf: lsdir1 <verz_1> [<verz_2> ... ]
    #
    for i
    do   ls -l $i | grep '^[Dd]'
    done
    
    


    Für jedes Aufrufargument wird die Pipeline ausgeführt.

  • Problem: bei Aufruf ohne Argument erfolgt keine Anwendung auf aktuelles Verzeichnis, da for-Körper überhaupt nicht abgearbeitet wird
  • Lösung:
    #!/bin/sh
    #
    # lsdir-Version: 
    # Aufruf: lsdir2 <verz_1> [<verz_2> ... ]
    #
    if [ $# -eq 0 ]
    then
    lsdir2 .
    else
        for i
        do   ls -l $i | grep '^[Dd]'
        done
    fi
    
    
  • allgemeine Form des for-Kommando:


    for var [in zk1 zk2 ...zkn ]

    do

        cmd_liste

    done


    Der Shell-Variablen var wird in jedem Zyklus eine Zeichenkette zki zugewiesen und damit cmd_liste abgearbeitet. (Dort wird natürlich auf var Bezug genommen.)

  • Beispiele:
    #!/bin/sh
    #
    # Erzeugen von Files
    #
    # Aufruf:  create <file_1> [<file_2> ...]
    #
    
    if [ $# -eq 0 ]
    then echo "Aufruf: $0 file_1 [file_2 ...]"
    else
         for i
         do
             >$i
         done
    fi
    
    

    #!/bin/sh
    #
    # lsdir-Version fuer das aktuelle Verzeichnis
    #
    # Aufruf: lsdir3
    #
    
    for i in *
    do
         if [ -d $i ]
         then echo $i
         fi
    done
    
    
  • Bemerkung:
    • Metazeichen (z.B. *) erlaubt, d.h. es wird Filenamengenerierung durchgeführt
    • nur Verzeichnisnamen aufgelistet
  • Beispiel:
    #!/bin/sh
    # Ausgabe von Informationen zu einem Nutzerkennzeichen
    # in der Form:
    # NUTZER-KZ: <nkz>   HOME-DIR: ...  LOGIN-SHELL: ...
    #
    # Aufruf: $0 <nkz_1> ...
    
    if [ $# -eq 0 ]
    then
        echo "Aufruf: $0 nutzerkennzeichen ..."
        exit 1;
    fi
    for i in $*
    do
        if grep "^$i:" /etc/passwd >/tmp/nkz$$
        then
            h=`cat /tmp/nkz$$ | cut -f6 -d':'`
            p=`cat /tmp/nkz$$ | cut -f7 -d':'`
            echo "NUTZER-KZ:$i  HOME-DIR:$h  LOGIN-SHELL:$p"
        else echo "NUTZER-KZ $i auf dieser Maschine nicht vorhanden"
        fi
    done
    rm /tmp/nkz$$
    
    


  • Eine junge Frau sitzt am Computer.

    Rund um die Uhr die Hausarbeit abschließen

    Einfach dranbleiben: Universitätsbibliothek der TU Chemnitz hat unmittelbar im Anschluss an die „Lange Nacht der aufgeschobenen Hausarbeiten“ am 5. Februar 2026 erstmals noch bis 14. Februar gegen Mitternacht 24/7 geöffnet …

  • Logo vor einer Gebäudeansicht

    TU Chemnitz im Ranking von StudyCheck.de auf Platz 4 der beliebtesten Universitäten in Deutschland

    Ein „StudyCheck Award 2026“ mit dem Zertifikat „Top Universität 2026“ geht dank der sehr positiven Bewertung ihrer Studierenden sowie Absolventinnen und Absolventen an die TU Chemnitz – Zudem ist die TUC aktuell die zweitbeste staatliche Universität im Live-Ranking „Digital Readiness“ …

  • Mehrere Personen spielen Tischtennis.

    Wenn der Deutschkurs in die Werkhalle verlagert wird

    Tischtennisturnier krönte Premiere des Sprach- und Praxisprojekts „Deutsch für Ingenieure“ – Internationale Studierende präsentierten ihre selbstgebauten Schläger und bewiesen dabei ihre neugewonnene Sprachkompetenz …

  • Blick auf ein schiff, das neben einem Gebäude ankert.

    Spurensuche in der Stadt

    Wie Migration Stadtbilder und Lebensgeschichten prägt, zeigt das Deutsche Auswandererhaus in Bremerhaven bis zum 1. März 2026 – Ausstellung „Aufbrüche – Umbrüche“ verknüpft Bremerhaven und Chemnitz in einem Dialog über Wandel, Erinnerung und Identität – Professur Humangeographie mit Schwerpunkt Europäische Migrationsforschung der TU Chemnitz wirkte an der Konzeptentwicklung mit …