Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einleitung
2 Die Installation
3 Erste Schritte
4 Linux als Workstation für Einsteiger
5 Der Kernel
6 Die Grundlagen aus Anwendersicht
7 Die Shell
8 Reguläre Ausdrücke
9 Konsolentools
10 Die Editoren
11 Shellskriptprogrammierung mit der bash
12 Die C-Shell
13 Benutzerverwaltung
14 Grundlegende Verwaltungsaufgaben
15 Netzwerkgrundlagen
16 Anwendersoftware für das Netzwerk
17 Netzwerkdienste
18 Mailserver unter Linux
19 LAMP
20 DNS-Server
21 Secure Shell
22 Die grafische Oberfläche
23 Window-Manager und Desktops
24 X11-Programme
25 Multimedia und Spiele
26 Prozesse und IPC
27 Bootstrap und Shutdown
28 Dateisysteme
29 Virtualisierung und Emulatoren
30 Softwareentwicklung
31 Crashkurs in C und Perl
32 Einführung in die Sicherheit
33 Netzwerksicherheit überwachen
A Lösungen zu den einzelnen Aufgaben
B Kommandoreferenz
C X11-InputDevices
D MBR
E Die Buch-DVDs
F Glossar
G Literatur
Stichwort

Download:
- ZIP, ca. 15,7 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
geb., mit 2 DVDs
1302 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1704-0
Pfeil 11 Shellskriptprogrammierung mit der bash
  Pfeil 11.1 Das erste Shellskript
  Pfeil 11.2 Kommentare
  Pfeil 11.3 Rechnen in der Shell
    Pfeil 11.3.1 Integer-Variablen
    Pfeil 11.3.2 expr
    Pfeil 11.3.3 Den bc nutzen
  Pfeil 11.4 Arrays
  Pfeil 11.5 Bedingte Anweisungen
    Pfeil 11.5.1 if
    Pfeil 11.5.2 case
  Pfeil 11.6 Schleifen
    Pfeil 11.6.1 while
    Pfeil 11.6.2 until
    Pfeil 11.6.3 for
    Pfeil 11.6.4 seq – Schleifen mit Aufzählungen
  Pfeil 11.7 Menüs mit select
  Pfeil 11.8 break
  Pfeil 11.9 Funktionen
    Pfeil 11.9.1 Eine simple Funktion
    Pfeil 11.9.2 Funktionsparameter
    Pfeil 11.9.3 Rückgabewerte
  Pfeil 11.10 Temporäre Dateien
  Pfeil 11.11 Syslog-Meldungen via Shell
  Pfeil 11.12 Zusammenfassung
  Pfeil 11.13 Aufgaben


Galileo Computing - Zum Seitenanfang

11.3 Rechnen in der Shell  Zur nächsten ÜberschriftZur vorigen Überschrift

Rechnen kann man in der Shell auf verschiedene Weisen. Man kann über ein awk-Skript, über eine Pipe mit dem bc, via expr oder über Integer-Variablen eine Berechnung ausführen lassen. Den awk-Interpreter und den bc kennen Sie ja bereits. Nun werden wir uns mit expr und Integer-Variablen beschäftigen.


Galileo Computing - Zum Seitenanfang

11.3.1 Integer-Variablen  Zur nächsten ÜberschriftZur vorigen Überschrift

typeset -i

Integer-Variablen können Sie in der Bourne-Again-, Korn- und Z-Shell über das Kommando typeset -i angelegen. Anschließend können Sie durch erneute Wertzuweisung mit einer Variable rechnen. Möglich sind dabei nicht nur Addition, Subtraktion, Division (allerdings ohne Kommastellen!), Multiplikation und Modulo, sondern auch das aus C bekannte Bit-Shiften durch »n und «n sowie ein bitweises UND (&), ODER (|), XOR (^) und Negieren (~). Außerdem möglich sind die ebenfalls aus awk und C bekannten Abkürzungsoperatoren wie +=, -= oder ^=.

$ typeset -i zahl
$ zahl=301*2
$ echo $zahl
602
$ zahl=$zahl+1
$ zahl=$zahl/3
$ echo $zahl
201
$ zahl=8\<\<3
1024

Listing 11.7  typeset -i anwenden

Um einer Variablen einen Wert zuzuweisen, benutzt man nur den Namen der Variablen. Will man dagegen auf den Wert einer Variablen zugreifen, muss man dem Variablennamen ein Dollarzeichen ($) voranstellen.

Achten Sie außerdem immer darauf, Sonderzeichen wie ( oder > in Ihren Rechnungen durch einen Backslash vor der Interpretation durch die Shell zu schützen. Eine bloße Klammerung würde beispielsweise als Subshell und ein > als Ausgabeumlenkung interpretiert werden.

let

Eine weitere Möglichkeit, mit Integer-Variablen zu arbeiten, ist die Nutzung des let-Befehls in der Form

$ let x=37+13
$ echo $x
50

Listing 11.8  Der Befehl let

sowie die Verwendung einer doppelten Klammerung für eine Rechnung

$ ((produkt=37*13))
$ echo $produkt
481

Listing 11.9  (( ... ))

und die Verwendung eckiger Klammern in bash und zsh:

$ z=$[13*37]
$ echo $z
481

Listing 11.10  Eckige Klammern


Galileo Computing - Zum Seitenanfang

11.3.2 expr  Zur nächsten ÜberschriftZur vorigen Überschrift

Eine Möglichkeit, die in jeder Shell funktioniert, um Rechnungen durchzuführen, ist expr. Dem Programm wird dabei die entsprechende Rechnung übergeben. Die Ausgabe erfolgt entweder über die Standardausgabe oder man weist das Ergebnis durch eine Kommandosubstitution einer Variablen zu.

$ expr 13 + 37
$ ergebnis=`expr 13 + 37`
$ echo $ergebnis
50

Listing 11.11  Das Programm expr


Galileo Computing - Zum Seitenanfang

11.3.3 Den bc nutzen  topZur vorigen Überschrift

Den Konsolenrechner bc kennen Sie ja bereits aus Abschnitt 9.10.1. Er stellt einige zusätzliche Rechenfunktionen bereit, die in der reinen Shellskriptprogrammierung nicht möglich sind, etwa die Berechnung von Kommawerten. Wenn man solche Aufgaben lösen muss, kann man ganz einfach den bc in eine Berechnung einbinden, was folgendermaßen geschrieben wird:

$ echo "scale=5; 31.2/494" | bc
.06315
$ ergebnis=`echo "scale=5; 31.2/494" | bc`
$ echo $ergebnis
.06315

Listing 11.12  bc und Shellvariablen



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Linux, Ausgabe 2011






Linux, Ausgabe 2011
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Linux-Server






 Linux-Server


Zum Katalog: Linux Hochverfügbarkeit






 Linux Hoch-
 verfügbarkeit


Zum Katalog: LPIC-1






 LPIC-1


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: openSUSE 11.2






 openSUSE 11.2


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2011
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, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de