Table Of ContentShell-Programmierung ... im Alleingang
Springer
Berlin
Heidelberg
New York
Barcelona
Budapest
Hongkong
London
Mailand
Paris
Santa Clara
Singapur
Tokio
Peter Termollen
Shell-Programlllierung
. .. illl Alleingang
Die Kom-Shell in der Praxis
Zweite Auflage
Mit Diskette
Springer
PeterTermollen
Talstral3e 6
65719 Hofheim
DieDeutscheBibliothek- CIP-Einheitsaufnahme
Shell-Programmierung...imAlleingang:dieKorn-Shell inderPraxis/Peter
Termollen.- Berlin;Heidelberg;NewYork;Barcelona;Budapest;Hongkong;London;
Mailand; Paris;SantaClara;Singapur;Tokio: Springer.
ISBN3-540-61721-3
NE:Termollen,Peter
Buch.- 2.Autl.- 1997
Diskette.-2.Autl.- 1997
ISBN-13:978-3-540-61721-1 e-ISBN-13: 978-3-642-60557-4
001: 10.1007/978-3-642-60557-4
DiesesWerk isturheberreehtliehgeschtitzt. DiedadurchbegriindetenRechte, insbesonderedieder
Obersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der
Funksendllng, der Mikroverfilmung oder der Vervielfaltigung auf anderen Wegen und der
SpeicherunginDatenverarbeitungsanlagen,bleiben,auchbeinurauszugsweiserVerwertung,vorbe
halten.EineVervielfaltigungdiesesWerkesodervonTeilendiesesWerkesistauchimEinzelfallnur
in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik
Deutschlandyom9.September1965inderjeweilsgeltendenFassungzulassig.Sieistgrundsatzlich
vergutungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechts
gesetzes.
©Springer-VerlagBerlinHeidelberg 1993, 1997
Reprintoftheoriginaledition1997
DieWiedergabe von Gebrauchsnamen, Handelsnamen,Warenbezeichnungen usw. indiesem Werk
berechtigtauchohnebesondereKennzeichnungnichtzuderAnnahme,daBsoleheNamenimSinne
der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von
jedermannbenutztwerdendurften.
Die in dicsem Buch vorgestellten Beispielprogramme durfen ohne Genehmigung und weitere
VergutungalsGrundlagefurdieErstellungkommerziellerProgrammeverwendetwerden. Werden
die Beispielprogramme erweitert, so darfdie Copyrighl-Erklarung im Quelltext der Beispielpro
grammeumeigeneUrheberrechtserklarungenerweilertwerden. DieVerwendungderQuelltextefur
Schulungen oder Publikationen isl, auch bei auszugsweiser Verwendung, grundsatzlich genehmi
gungs-undvergutungspflichtig.
DerSpringer-VerlagistnichtUrheberderBeispielprogramme,sondernstelltdiesenurzurVerfugung.
DerVerlagweistdaraufhin,daBSoftwarenichtfehlerfreierstelltwerdenkann:derLesermuBdaher
dieKorrektheitderBeispielprogrammeingeeigneterWeiseuberprufen.
Einbandgestaltung:Kunkel+LopkaWerbeagentur,Heidelberg
Satz:ReproduktionsfertigeVorlageyomAutor
Fotobelichtung:perform,Heidelberg
SPIN: 10551223 33/3142-5432I0- GedrucktaufsaurefreiemPapier
... Dank und Widmung
Mein Dankgilt allen Personen, die mich wlihrend der Erstellung des Buches un
tersttitzthaben.
Herr Dr. Schnupp muB dabei an erster Stelle stehen, denn er hatdas ganze Vor
haben tiberhaupt erst ermoglicht, indem er das Ausgangsmaterial kritisch begut
achtete. DankauchdemVerlag, insbesondereHerrnDr. Barabas,dermitRatund
Tat zur Verftigung stand. Vor allem Robert Barton sowie Dieter Harig, Michael
LebertundSusanneVaitlgabenmirdurchwiederholtesKorrekturlesenwertvolle
Hinweise.
Gewidmet meinem Sohn Marcel, der noch vor Drucklegung der ersten Auflage
zurWeltkam, meinerTochterVanessa und meiner Frau Anke, die mich in allen
PhasenderEntstehungdes Buchestatkraftiguntersttitzthat.
PeterTermollen
Vorwort zur zweiten Auflage
Ais die IBM Bildungsgesellschaft nach Erscheinen der ersten Auflage mit der
Bitteaufmich zugekommenist, aufderBasisdieses Buches einAIX-Seminarzu
gestalten, war ich nattirlich sehr erfreut, das Thema einer groBen Zahl von
Anwendern bereitstellen zu konnen. Auf diese Weise ist das Kursprograrnrn
"UNIX!AIX ftir fortgeschrittene Anwender" entstanden, das den Inhalt des
Buches in komprimierter Form wiedergibt und den Teilnehmern zusarnrnen mit
diesemBuchalsSeminarunterlagezurVerftigunggestelltwird.
Die Idee des Buches "... im Alleingang" konnte also unmittelbar in die Praxis
umgesetzt werden und aufgrund der positiven Rtickmeldungen sowie Erfahrun
gen als Referent in diesen Kursen kann man abschlieBend feststellen: das Buch
hatseineBewlihrungsprobebestanden.
Aufgrund der Anregungen und zahlreichen Diskussionen wlihrend der letzten
dreiJahrehabeichmichentschlossen,das BuchurneineKurztibersichtderTools
awk und sed zu erweitern, urn so das Thema Shell-Programmierung sinnvoll
abzurunden.
Ich wtinsche Ihnen auch weiterhin viel SpaB und Erfolg beim Durcharbeiten des
Buches.
v
Inhaltsverzeichnis
1. Einleitung 1
1.1. Zielsetzungdes Buches 3
1.2. Voraussetzungen 3
1.3. ThemeniibersichtderProzeduren 5
1.4. InstallationderDisketteaufdieFestplatte 6
1.5. ArbeitenmitdenProzeduren 7
1.6. UbersichtallerProzedurenanzeigen 9
1.7. DieProzedurenrichtigplazieren 9
1.8. DieProzedurenderAdreBverwaltung 9
1.9. Sprachgegebenheiten 10
1.10. HermitderKom-Shell 10
2. Shell-Prozeduren 13
2.1. Kapiteliibersicht. 13
2.2. AufbaueinerProzedur 15
2.3. AufrufeinerShell-Prozedur 17
Aufrufals ArgumentderShell 17
DerAufrufdurchEingabedesDateinamens 19
2.4. BeispielefurShell-Prozeduren 21
2.5. ProzedurenimUNIX-Umfeld 23
2.6. Kommentare 24
2.7. IdentifikationeinerProzedur 25
2.8. DieWahlderShell 26
2.9. Fehlersuche 30
3. Argumente iibergeben 33
3.1. Kapiteliibersicht. 33
3.2. Einleitung 34
3.3. DiePositionsparameter $1 bis $n 35
3.4. DieVariable $* 38
3.5. DieVariable n$@n 39
VII
Inhalt verzeichnis
3.6. DieVariable $# 39
3.7. DerBefehl shift 40
3.8. ArgumenteundLeerzeichen 42
3.9. DatenvonderTastatureinlesen 44
3.10. Datenaus demEnvironmentlesen 50
3.11. Parametersubstitution 58
4. Daten zuriickgeben 63
4.1. Kapiteltibersicht. 63
4.2. DieUmgebungderaktuellenShellverandem 64
4.3. DerAufrufmitdemPunkt.. 67
4.4. DieRtickgabe vonDaten 70
5. Vordefinierte Variablen derShell 73
5.1. Kapiteltibersicht. 73
5.2. DieVariable $0 74
5.3. DieVariable $$ 75
5.4. DieVariable $? 75
5.5. DieVariable $! 76
Adre8kartei Teil 1 79
Kapiteltibersichl 79
AllgemeineBe chreibung 80
DieProzedurenderDi kettetibemehmen 81
AnlegeneinerAdres e 82
AIle Adre eo au geben 84
SucheneinerAdre e 84
Lo cheneinerAdre 85
EinBei pieldurchlauf 86
DieAdreBdatei wech eln 8
Ge lanteAnderun en inTeil 2 90
6. Kommandosubstitution 91
6.1. Kapiteltibersicht 91
6.2. DieumgekehrtenAnftihrungszeichen' ' 92
6.3. MehrzeiligeAusgaben 93
6.4. DieeinfachenAnftihrungszeichen 95
I•••'
6.5. DiedoppeltenAnftihrungszeichen " " 95
6.6. Argumentegenerieren 97
6.7. ZuweisunganVariablen 100
6.8. DerBefehl set unddie Kommandosubstitution 103
6.9. 'DieVariable IFS 106
6.10. UnterdieLupegenommen 112
VIII
__. Inhalt erzeichn1s
7. Integerarithmetik 115
7.1. Kapiteltibersicht. 115
7.2. DerBefehl expr 116
7.3. ArithmetikmitdemBefeh1 1et 117
7A. EinealternativeSchreibweisevon 1et 119
7.5. DerDatentyp integer 120
Adre8kartei Teil 2 125
Kapileliiber ieht 125
Db rsiehlderA.nderungen 126
Anz igen einerAdre e 127
A.ndcrungder Prozedur suchen 128
Ein Bei pieldurchlauf 128
Ge lanleA.nderun eninTeil 3 133
8. Entscheidungen treffen 135
8.1. Kapiteltibersicht. 135
8.2. ErfolglMiBerfolgvon Kommandos 136
8.3. DerRtickgabewertin $? 137
804. DerBefehl exit 139
8.5. DiebedingteAnweisung if 140
8.6. if unddie Kommandoverkettung 143
8.7. DasKommando test 150
Zeichenkettenvergleichen 152
VergleichganzerZahlen 159
DieArgumenteeinerProzedurtiberprtifen 161
GanzeZah1enverg1eichenmit let.. 166
DenStatusvonDateienabfragen 169
EinealternativeSchreibweisevon test 173
DerNegationsoperator ! 174
Ausdrtickelogisch verkntipfen 174
EineErweiterungvon test inSVR4 178
8.8. Anwendungsbeispie1: DassichereLoschen 179
8.9. DieFallunterscheidungmitelif 188
Adre6kartei Tell 3 193
Kapileliiber ichl. 193
Uber ichtderA.nderungen 194
A.nderungderProzeduranlegen 195
A.nderungderProzedursuchen 196
A.nderungderProzedur loeschen 198
EinBei pieldurchlauf 200
G lanleA.nderun ninTeil4 204
IX
lnhaltsverzeichnis
9. Weitere Entscheidungen 205
9.1. Kapiteltibersicht. 205
9.2. DieBefehle && und I I 206
9.3. Anwendungsbeispiel: DassichereLoschen 211
904. DieAnweisung case 216
9.5. case unddieWildcard-Zeichen 219
DieVerarbeitung vonOptionen 223
9.6. AlternativeVergleichsmuster 228
9.7. EinAuswahlmentimitcase 231
Adre8kartei Teil 4 235
Kapiteliib r ichl. 235
Uber ichtderAnd rungen 236
Ja/Nein-Abfragenge taiten 237
Da HauptprogrammderAdreBverwaltung 237
Das AnderneinerAdre e 239
AnderungderProzedursuchen 241
AnderungderProzedurloeschen 242
EinBei pieldurchlauf 243
Ge lanteAnderun en inTeil5 248
o.
1 Schleifen 249
10.1. Kapiteltibersicht 249
10.2. Diewhile-Schleife 250
Anwendungsbeispiel: EinAuswahlmenti 254
10.3. Dieuntil-Schleife 258
lOA. Die for-Schleife 263
.Argumentebearbeiten 265
for unddieDateinamengenerierung 267
for unddie Kommandosubstitution 271
10.5. DerBefehl continue 277
Anwendungsbeispiel: DassichereLoschen 281
10.6. Endlosschleifen 286
DieGestaltungvonJa/Nein-Abfragen 287
DerBefehlbreak 289
Anwendungsbeispiel: Damonen 296
10.7. Ein-Ausgabeurnlenkung 306
DieAusgabeurnlenkunganeinKommando 308
DateienIesenmitderEingabeurnlenkung 310
Kommandoausgaben lesen 313
x
---------------- Inhalt erzeichn1s
Adre8kartei Tell 5 319
Kapiteliibe icht 319
Uber ichtderAnderungen 320
AnderuogderJalNein-Abfrage 321
AnderungderProzeduradr 322
Andem.Lo eben und Suchenvon dre en 323
ArtderungderProzeduraendern 324
AnderungderProzedur loeschen 327
AnderuogderProzedursuchen 329
DieProzedur tel 329
EinBei pieldurchlauf 33I
Ge lanteAnderun en inTeil6 336
11. Das Umlenken von Daten 337
11.1. Kapiteltibersicht 337
11.2. Umlenkung mitdemBefehI exec 338
11.3. DieBenutzungvonDateideskriptoren 340
11.4. Here-Dokumente(In-line-Eingabeumleitung) 342
11.5. Anwendungsbeispiel: FlieBkommaberechnungen 346
11.6. Anwendungsbeispiel: Datensicherung 347
12. Auswahlmeniis 351
12.1. Kapiteliibersicht. 351
12.2. Die select-Anweisung 352
12.3. Anwendungsbeispiel: DassichereLoschen 360
13. Zeichenketten formatieren 363
13.1. Kapiteltibersicht. 363
13.2. DerBefehl typeset 364
VariablenFormatezuweisen 367
VariablenvordemUberschreibenschtitzen 369
Variablenexportieren 370
DasZurticksetzenvonOptionen 371
AnzeigenderdefiniertenVariablen 372
DieAufbereitung vonAusgaben 373
13.3. Zeichenkettenbearbeitenmitexpr 380
DenIohalteinerZeichenkettetiberprtifen 384
Teilzeichenkettenausschneiden 387
XI