Springe zum Hauptinhalt

Bourne
next up previous contents
Next: break-Kommando Up: Ablaufsteuerung Previous: until-Kommando

case-Kommando

  • Beispiel:
    #!/bin/sh
    # 
    # Shell-Script append, das ein File
    # an ein anderes File "anhaengt"
    #
    # Aufruf: append [von_file] nach_file
    #
    case $# in
        1) cat >>$1;;
        2) cat >>$2 <$1;;
        *) echo "Aufruf: append [von] nach";;
    esac
    
    
  • allgemeine Form:


    case zk in

        zk_muster_1) cmd_liste_1;;

        zk_muster_2) cmd_liste_2;;

        ...

        zk_muster_n) cmd_liste_n;;

    esac

  • Bemerkung:


    Zur Bildung der Zeichenkettenmuster zk_muster_i können die ,,pattern matching``-Möglichkeiten der Shell (*, ?, [-]) benutzt werden sowie mehrere Alternativen, getrennt durch $\vert$ angegeben werden:


        zk_muster_1 $\vert$ zk_muster_2 $\vert$ ...)

  • Beispiel:
    #!/bin/sh
    #
    # komfortablere Schnittstelle fuer /usr/bin/cal
    #
    # Aufruf:    cal  [ <monatsname>|<monatszahl> [ <jahr> ]]
    #
    case $# in
    0)      set `date`; m=$2; y=$7 ;;   # keine Argumente: heute
    1)      m=$1; set `date`; y=$7 ;;   # 1 Arg:  Monat im aktuellen Jahr
    2)      m=$1; y=$2 ;;               # 2 Arg: Monat und Jahr
    *)      echo "Aufruf: a) $0 [ <monatsname>|<monatszahl> [ <jahr> ]]"
            echo "        b) $0  <jahr> "
            echo ""
            echo "Bsp: $0 5 1990   --> Mai 1990"
            echo "     $0 5        --> Mai des aktuellen Jahres"
            echo "     $0 05       --> Jahr 5 ,d.h fuer die Jahre 1-12 muss die"
            echo "                     Ziffer 0 vor die Jahreszahl gesetzt werden"
            exit 1;;
    esac
    case $m in
        ja*|Jan*)        m=1 ;;
        fe*|Feb*)        m=2 ;;
        ma[er]*|Ma[er]*) m=3 ;;
        ap*|Apr*)        m=4 ;;
        ma[yi]|Ma[yi])   m=5 ;;
        jun*|Jun*)       m=6 ;;
        jul*|Jul*)       m=7 ;;
        au*|Aug*)        m=8 ;;
        se*|Sep*)        m=9 ;;
        o[ck]*|O[ck]*)   m=10 ;;
        no*|Nov*)        m=11 ;;
        de*|De*)         m=12 ;;
        [1-9]|10|11|12)       ;;         # Monatsnummer
        *)               y=$m;m="";;     # erstes Argument als Jahreszahl
    esac
    if /usr/bin/cal $m $y
    then :
    else
        echo "Aufruf: a) $0 [ <monatsname>|<monatszahl> [ <jahr> ]]"
        echo "        b) $0  <jahr> "
        echo ""
        echo "Bsp: $0 5 1990   --> Mai 1990"
        echo "     $0 5        --> Mai des aktuellen Jahres"
        echo "     $0 05       --> Jahr 5 ,d.h fuer die Jahre 1-12 muss die"
        echo "                     Ziffer 0 vor die Jahreszahl gesetzt werden"
        exit 1
    fi
    
    


  • 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 …