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

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

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

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 7 Shellskriptprogrammierung
  gp 7.1 Das erste Shellskript
  gp 7.2 Kommentare
  gp 7.3 Rechnen in der Shell
    gp 7.3.1 Integer-Variablen
    gp 7.3.2 expr
    gp 7.3.3 Den bc nutzen
  gp 7.4 Arrays
  gp 7.5 Bedingte Anweisungen
    gp 7.5.1 if
    gp 7.5.2 case
  gp 7.6 Schleifen
    gp 7.6.1 while
    gp 7.6.2 until
    gp 7.6.3 for
    gp 7.6.4 seq – Schleifen mit Aufzählungen
  gp 7.7 Menüs mit select
  gp 7.8 break
  gp 7.9 Funktionen
    gp 7.9.1 Eine simple Funktion
    gp 7.9.2 Funktionsparameter
    gp 7.9.3 Rückgabewerte
  gp 7.10 Temporäre Dateien
  gp 7.11 Zusammenfassung
  gp 7.12 Aufgaben


Galileo Computing

7.3 Rechnen in der Shell  downtop

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 Rechnung ausführen lassen. awk und den bc kennen Sie ja bereits. Nun werden wir uns mit expr und Integer-Variablen beschäftigen.


Galileo Computing

7.3.1 Integer-Variablen  downtop

typeset -i

Integer-Variablen können in der Bourne-Again-, Korn- und Z-Shell über das Kommando typeset -i angelegt werden. Anschließend kann durch erneute Wertzuweisung mit einer Variable gerechnet werden. 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 7.7    typeset -i anwenden

Um einer Variable einen Wert zuzuweisen, benutzt man nur den Namen der Variable. Um aber auf den Wert einer Variable zuzugreifen, muss dem Variablennamen ein Dollarzeichen ($) vorangestellt werden.

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 7.8    let

sowie die Verwendung einer doppelten Klammerung für eine Rechnung

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

Listing 7.9    (( ... ))

und eckige Klammern in bash und zsh:

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

Listing 7.10    Eckige Klammern


Galileo Computing

7.3.2 expr  downtop

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 an eine Variable zu.

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

Listing 7.11    expr


Galileo Computing

7.3.3 Den bc nutzen  toptop

Den bc kennen Sie ja bereits aus Abschnitt 5.8.1. Er stellt einige zusätzliche Rechenfunktionen bereit, die in der bloßen 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 7.12    bc und Shell-Variablen



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






 Linux
Jetzt bestellen


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

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
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