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
    
    


  • Skulptur der Justizia vor einem Gebäude

    Schulterschluss für ein Studium der Rechtswissenschaften an der TU Chemnitz

    Neue Website der TU Chemnitz zeigt, dass sich Vertreterinnen und Vertreter aus der Justiz, der Anwaltschaft, der Wirtschaft und der Wissenschaft einig sind, wie man in Chemnitz durch neue Studienangebote in den Rechtswissenschaften dem zunehmenden Bedarf an Juristinnen und Juristen in Sachsen wirkungsvoll begegnen kann …

  • Drei Männer stehen nebeneinander. Ein Mann in der Mitte hält eine Urkunde in den Händen.

    Peter Bernshausen ist neuer Kanzler der TU Chemnitz

    Mit der Bestellung durch das Sächsische Staatsministerium für Wissenschaft, Kultur und Tourismus übernimmt Peter Bernshausen ab 1. November 2024 die Leitung der Zentralen Universitätsverwaltung …

  • Grafik mit Vernetzungssymbolen

    Tag des wissenschaftlichen Nachwuchses am 28. November 2024

    Der „Tag des wissenschaftlichen Nachwuchses“ der TU Chemnitz steht in diesem Jahr im Zeichen der vielfältigen Wege zur Promotion und zu unterschiedlichen Karriereoptionen nach der Promotion – Kostenfreie Teilnahme ist nach Online-Anmeldung möglich …

  • Blick auf ein buntes Bild an einem Gebäudeanbau.

    Neue Kunst im „Erfenschlag“

    Studierende und Beschäftigte der TU Chemnitz schufen durch Malen auf dem Wasser ein Kunstwerk, das nun einen Gebäudeanbau auf dem Gelände des südlichsten Uni-Standorts ziert …