SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

GUIDES UND TUTORIAL

Arithmetik in Skripts

Die expr-Anweisung erlaubt das Auswerten von arithmetischen Ausdrücken. Das Ergebnis wird in die Standardausgabe geschrieben. Als Zahlen können 16-Bit-Integerzahlen (beim Ur-UNIX) oder 32-Bit-Integerzahlen (bei LINUX) verwendet werden (bei manchen Systemen auch noch längere Zahlen mit 64 Bit).

Die Bash wurde auch an dieser Stelle erweitert. Mit der doppelten Klammerung$((Ausdruck)) kann man rechnen, ohne ein externes Programm aufzurufen.expr Ausdruck und $((Ausdruck)) beherrschen die vier Grundrechenarten:

+Addition
-Subtraktion
*Multiplikation
/Division
%Divisionsrest (Modulo-Operator)

Die Priorität "Punkt vor Strich" gilt auch hier. Außerdem können Klammern gesetzt werden. Da die Klammern und der Stern auch von der Shell verwendet werden, müssen diese Operationszeichen immer durch den Backslash geschützt werden: '\*', '\(', '\)' . Damit die Operatoren von der Shell erkannt werden, müssen sie von Leerzeichen eingeschlossen werden. Zum Beispiel eine Zuweisung der Summe von A und B an X durch:

X=`expr $A + $B`

oder

X=$((expr $A + $B))

(Backquotes beachten!) Außerdem sind logische Operationen implementiert, die den Wert 0 für 'wahr' und den Wert 1 für 'falsch' liefern.

expr1 | expr2oder
expr1 & expr2 und
expr1 < expr2kleiner
expr1 <= expr2 kleiner oder gleich
expr1 > expr2größer
expr1 >= expr2größer oder gleich
expr1 = expr2gleich
expr1 != expr2 ungleich

Beispiele:

                                        # Mittelwert der positiven Zahlen, die von stdin gelesen werden 
                                        SUM=0 
                                        COUNT=0 
                                        while read $WERT          # lesen, bis zum ^D 
                                          do 
                                          COUNT=`expr $COUNT + 1` 
                                          SUM=`expr $SUM + $WERT` 
                                        done 
                                        AVINT=`expr $SUM / $COUNT` 
                                        echo "Summe: $SUM    Mittelwert: $AVINT" 
                                        

                                        #Nimm-Spiel, interaktiv 
                                        ANZ=0 
                                        if test $# -ne 1 
                                        then 
                                          echo "Usage: $0  Startzahl" 
                                        else 
                                          echo "NIM-Spiel als Shell-Skript" 
                                          echo "Jeder Spieler nimmt abwechselnd 1, 2 oder 3 Hoelzer" 
                                          echo "von einem Haufen, dessen Anfangszahl beim Aufruf fest-" 
                                          echo "gelegt wird. Wer das letzte Holz nimmt, hat verloren." 
                                          echo 
                                          ANZ=$1 
                                          while [ $ANZ -gt 1 ]                 # bis nur noch 1 Holz
                                            do                                  # da ist wiederholen
                                            echo "\nNoch $ANZ Stueck. Du nimmst (1 - 3): \c # Benutzer
                                            read N
                                            if [ $N -lt 1 -o $N -gt 3 ] ; then # Strafe bei Fehleingabe
                                              N=1
                                            fi
                                            ANZ=`expr $ANZ - $N`                # Benutzer nimmt N weg
                                            if [ $ANZ -eq 1 ] ; then           # Computer muß letztes Holz nehmen
                                              echo "\nGratuliere, Du hast gewonnen"
                                              exit                              # Prozedur verlassen
                                            else
                                              C=`expr \( $ANZ + 3 \) % 4        # Computerzug berechnen
                                              if [ $C -eq 0 ] ; then
                                                C=1                             # Wenn 0 Verlustposition
                                              fi
                                              echo "Es bleiben $ANZ Stueck. Ich nehme ${C}.\c"
                                              ANZ=`expr $ANZ - $C`              # Computerzug abziehen 
                                              echo " Rest $ANZ"
                                            fi
                                          done                                  # Dem Benutzer bleibt
                                          echo "\nIch habe gewonnen"            # das letzte Holz
                                        fi
                                        

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere