Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Erstellen und Start eines Programmierung von Shellskripten Ablaufsteuerung »

Variablen

Die Shellskripten können mit Variablen arbeiten. Variablen sind Speicher für Daten, die über einen Namen angesprochen werden. Die Variablen der Shell entsprechen den bereits bekannten Umgebungsvariablen. Der Unterschied liegt darin, dass Umgebungsvariablen an Kindprozesse weitergegeben werden. Mit dem Kommando export werden Shellvariablen zu Umgebgungsvariablen. Der Name von Variablen beginnt mit einem Buchstaben und kann dann beliebig viele Ziffern und Buchstaben enthalten. Auch der Unterstrich ist zulässig.

Variablen werden gefüllt, indem Sie dem Variablennamen ein Gleichheitszeichen und den Wert folgen lassen. Dabei darf kein Leerzeichen zwischen der Variablen, dem Gleichheitszeichen und dem zugewiesenen Wert stehen. Um sich auf den Inhalt einer Variablen zu beziehen, stellen Sie dem Variablennamen ein Dollarzeichen voran. Zur Ausgabe von Variablen wird der Befehl echo verwendet, der seine Argumente auf die Standardausgabe ausgibt.

INFO="Tolles Wetter!"
echo 

Bestimmte Variablennamen sind vorbelegt. Beispielsweise erfährt die Shell über besondere Variablen, wie der Aufruf des Skripts aussah. Mit $0 erhalten Sie den Dateinamen, unter dem das Skript gestartet wurde. $1 ist der erste Parameter, $2 der zweite und so weiter. Aus der Variablen $# erfährt das Skript, mit wievielen Parametern es aufgerufen wurde. Beispiel:

[Aufrufparameter lesen]
# Skript dreh - Tauscht Parameter
echo "Ich heiße " $0 " und habe " $# "Parameter"
echo $2 $1

Das Skript soll dreh heißen. Nachdem Sie mit chmod die Rechte auf ausführbar gesetzt haben, können Sie das Programm aufrufen. Das Ergebnis sieht so aus:

arnold@gaston > dreh anton erna
Ich heiße  ./dreh  und habe  2 Parameter
erna anton
arnold@gaston >

Zusammenfassung der vordefinierten Variablen:

[Spezielle Variablen]L|L Variablen & Inhalt
$1 $2 .. & Parameterstrings
$0 & Name der Skriptdatei
$# & Anzahl der übergebenen Parameter

Zuweisungen

Eine Variable wird definiert, wenn sie das erste Mal benutzt wird. Typischerweise geschieht dies durch eine Zuweisung. Shellvariablen enthalten Zeichenketten, die als Konstanten durch Anführungszeichen begrenzt werden. Damit auch Sonderzeichen aufgenommen werden können, wird eine Zeichenkette in Hochkommata eingeschlossen. Das Zuweisungszeichen ist das Gleichheitszeichen. Beispiele:

a="a ist ein schlechter Name für eine Variable: zu kurz"
dieZahlPi=3.14

Wenn Sie die Befehle echo $a oder echo $dieZahlPi aufrufen, so ist die Ausgabe genau das, was Sie den Variablen zugewiesen haben. Bevor aber zu hohe Erwartungen entstehen, ist zu sagen, das dieZahlPi keineswegs eine Zahl ist. Sie ist nur die Zeichenkette »3.14«.

Mit ganzen Zahlen können Sie in Skripten rechnen. Dazu gibt es den Befehl expr. Der Befehl erwartet als Parameter einen numerischen Ausdruck wie etwa 3 + 3. Dabei ist darauf zu achten, dass zwischen den Zahlen und den Operanden ein Leerzeichen steht. Das Ergebnis solcher Rechenkünste können Sie einklammern, ein $ davorstellen und es einer Variablen zuweisen. Das sieht dann so aus:

a=$(expr 3 + 3)
b=a * 3)

Wenn Sie sich per echo die Variablen a und b anschauen, stellen Sie fest, dass a nun 6 und b 18 ist. Bei genauem Hinsehen sehen Sie, dass bei der Zuweisung kein Leerzeichen und hinter expr überall Leerzeichen stehen. An dieser Stelle ist expr äußerst pingelig.

Natürlich fällt der Backslash vor dem * auf. Der ist notwendig, weil der Stern ja ein Sonderzeichen für die Shell ist. Damit der Stern den Befehl expr auch als Stern erreicht, müssen Sie eben einen Backslash davor setzen. In Tabelle steht, welche Operanden verwendet werden können.

[Operatoren in expr]C|L Zeichen & Bedeutung
+ & Addition
- & Subtraktion
* & Multiplikation
/ & Division
% & Modulo: Rest einer Division

Die verwendbaren Operatoren in Shellskripten unterscheiden sich wenig von denen anderer Programmiersprachen.

Wie bereits im Kapitel über die Shell (siehe S. let) gezeigt wurde, gibt es bei den moderneren Nachfolgern der Bourneshell den Befehl let, mit dem das Rechnen etwas eleganter wird als der Aufruf von expr. Da die Schreibweise etwas leichter lesbar ist, wird man diese Variante bevorzugen, sofern sichergestellt ist, dass die Shell der Zielsysteme den Befehl let verstehen. Hier noch einmal ein paar Beispiele:

gaston> let wert=45+5
gaston> echo 
 $wert
50
gaston> let wert=16\%5
gaston> echo$
 wert
1
gaston> let wert=(1+3)*2
gaston> echo 
 $wert
8
gaston>$
 



Unterabschnitte
    • Zuweisungen


« Erstellen und Start eines | Programmierung von Shellskripten | Ablaufsteuerung »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de