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

Shell-Funktionen

Ab System V können in der Bourne-Shell auch Funktionen definiert werden - eine weitere Strukturierungsmöglichkeit. Funktionen können in Shellskripts, aber auch interaktiv definiert werden. Sie lassen sich jedoch nicht wie Variablen exportieren. Sie werden nach folgender Syntax definiert:

Funktionsname () {Kommandofolge } 

Steht die schließende geschweifte Klammer nicht in einer eigenen Zeile, gehört ein Strichpunkt davor. Die runden Klammern hinter dem Funktionsnamen teilen dem Kommandozeileninterpreter der Shell mit, daß nun eine Funktion definiert werden soll (und nicht ein Kommando Funktionsname aufgerufen wird). Es kann keine Parameterliste in den Klammern definiert werden.

Der Aufruf der Shellfunktion erfolgt durch Angabe des Funktionsnamens, gefolgt von Parametern (genauso wie der Aufruf eines Skripts). Die Parameter werden innerhalb der Funktion genauso, wie beim Aufruf von Shellskripts über $1 bis $nn angesprochen. Ein Wert kann mit der Anweisung 'return <Wert>' zurückgegeben werden, er ist über den Parameter $? abfragbar. Beispiel:

                                        isdir () # testet, ob $1 ein Verzeichnis ist 
                                           { 
                                           if [ -d $1 ] ; then 
                                             echo "$1 ist ein Verzeichnis" # Kontrolle zum Test
                                             return 0
                                           else
                                             return 1   
                                            fi 
                                           } 
                                        

Im Gegensatz zum Aufruf von Shell-Skripts werden Funktionen in der aktuellen Shell ausgeführt und sie können bei der Boune-Shell nicht exportiert werden; die Bash erlaubt dagegen das Exportieren mit export -f. Das folgende Beispiel illustriert die Eigenschaften von Shellfunktionen.
Die folgende Funktion gibt den Eingangsparameter in römischen Zahlen aus. Dabei wird die Zahl Schritt für Schritt in der Variablen ZAHL zusammengesetzt. Würde man der Funktion ZIFF ein Skript verwenden, ginge das nicht, da sich der Wert von ZAHL ja nicht aus dem aufgerufenen Skript heraustransportieren ließe.

                                        #
                                        # Ausgabe des Eingangsparameters $1 in roemischen Ziffern 
                                        #
                                        ZIFF ()  
                                           # Funktion zur Bearbeitung einer einstelligen Ziffer $1 
                                           # Einer-, Zehner-, Hunderterstelle unterscheiden sich nur 
                                           # durch die verw. Zeichen $2: Einer, $3: Fuenfer, $4: Zehner 
                                           { X=$1 
                                           if test $X -eq 9; then 
                                              ZAHL=${ZAHL}$2$4 
                                           elif test $X -gt 4; then 
                                              ZAHL=${ZAHL}$3 
                                              while test $X -ge 6; do 
                                                 ZAHL=${ZAHL}$2 ; X=`expr $X - 1` 
                                              done 
                                           elif test $X -eq 4; then 
                                            ZAHL=${ZAHL}$2$3 
                                          else 
                                              while test $X -gt 0; do 
                                                  ZAHL=${ZAHL}$2 ; X=`expr $X - 1` 
                                              done 
                                            fi 
                                            } 
                                        if test $# -eq 0; then 
                                              echo "Usage: roem Zahl"; exit 
                                        fi 
                                        XX=$1 
                                        while test $XX -gt 999; do 
                                              ZAHL=${ZAHL}"M"; XX=`expr $XX - 1000` 
                                        done 
                                        ZIFF `expr $XX / 100` C D M 
                                        XX=`expr $XX % 100` 
                                        ZIFF `expr $XX / 10` X L C 
                                        ZIFF `expr $XX % 10` I V X 
                                        echo "$ZAHL \n" 
                                        

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