Springe zum Hauptinhalt

Bourne
next up previous contents
Next: for-Kommando Up: Ablaufsteuerung Previous: if-Kommando

test-Kommando

Mit dem Kommando test kann der Exit-Status in Abhängigkeit vom Wahrheitswert eines Ausdruckes gezielt gesetzt werden.


Beispiel:

$ test -f sort.c      # Exit-Status gleich 0, falls File sort.c existiert
Alternative Syntax:
$ [ -f sort.c ]       # Exit-Status gleich 0, falls File sort.c existiert
Das Kommando test erlaubt neben der Untersuchung von Files und Filetypen außerdem numerische Tests und Zeichenkettenvergleiche:
  • numerische Vergleiche
    • allgemeine Form:


      [ N operator M ]


      Wobei N und M für numerische Werte stehen, möglicherweise durch Shell-Variablen repräsentiert und operator für eine der folgenden Möglichkeiten steht:


      -eq Gleichheit von N und M
      -ne Ungleichheit von N und M
      -gt N ist größer als M
      -lt N ist kleiner als M
      -ge N ist größer oder gleich M
      -le N ist kleiner oder gleich M


    • Beispiele:

      #!/bin/sh
      #
      # Pruefen, ob mehr als <anzahl> Nutzer zum
      # Zeitpunkt des Aufrufs angemeldet sind
      #
      # Aufruf:  $0  <anzahl>
      #
      nutzer=`who | wc -l`
      if [ $# -eq 0 ]
      then   echo "Aufruf: $0 anzahl"
      elif [ $nutzer -gt $1 ]
      then echo "Mehr als $1 Nutzer angemeldet"
      fi
       
      
      
      #
      # Varianten der Wertezuweisung an Variable
      #
      
      nummer=1
      number=0001
      numero=' 1'
      


      Bei einem numerischen Test auf Gleichheit zwischen diesen Variablenwerten wird immer der Exit-Status 0 (d.h. Gleichheit) geliefert.

  • Zeichenkettenvergleiche
    • allgemeine Formen


      [ zk1 = zk2 ] $\char93 $ Test auf Gleichheit


      [ zk1 != zk2 ] $\char93 $ Test auf Ungleichheit


      Beispiele:

      [ $nummer = $number ]      # Exit-Status ungleich 0!
      
      [ $nummer = $numero ]      # Exit-Status gleich 0 (!!) da durch
                                 # test fuehrende Leerzeichen verloren gehen
      aber:
      
      [ "$nummer" = "$numero" ]  # Exit-Status ungleich 0
      
  • Existenz einer Zeichenkette


    • allgemeine Formen:


      [ -z zeichenkette ] $\char93 $ Test auf Länge 0 (leere Zeichenkette)


      [ -n zeichenkette ] $\char93 $ Test auf Länge ungleich 0, d.h. Existenz


    • Beispiel:
      #!/bin/sh
      #
      # Aufruf: $0 <filename}>
      #
      if [ -z "$1" ]
      then echo "Aufruf: $0 filename"
      else
          ...
      fi
      
    • Bemerkung:
      if [ -z $1 ]
      
      führt bei fehlendem Argument zu Fehlernachricht:

      cmd_name: argument expected


  • Untersuchung von Files


    • allgemeine Form:


      [ operator filename ]


      wobei operator steht für:


      -s File existiert und ist nicht leer
      -f File ist normales File, kein Verzeichnis
      -d File ist ein Verzeichnis
      -w für das File besteht Schreiberlaubnis
      -r für das File besteht Leseerlaubnis
      -x File ist ausführbar


    • Beispiel:
      #!/bin/sh
      #
      # Loeschen eines Files bzw.
      # eines leeren Verzeichnisses
      #
      # Aufruf  remove <filename>
      #
      
      if [ -d $1 ]
      then rmdir $1
      elif [ -f $1 ]
      then rm $1
      fi
      
      
    • Bemerkung:

      Die erläuterten Ausdrücke können darüber hinaus folgendermaßen zu komplexen Ausdrücken kombiniert werden:


      [ !ausdruck ] $\char93 $ Negation von ausdruck


      [ ausdruck1 -a ausdruck2 ] $\char93 $ logisches ,,UND``


      [ ausdruck1 -o ausdruck2 ] $\char93 $ logisches ,,ODER``


next up previous contents
Next: for-Kommando Up: Ablaufsteuerung Previous: if-Kommando
  • 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 …