Wszelkie prawa zastrzeżone. Nieautoryzowane ... strumienia wyj cia do pliku .....136 Przekierowanie...

20

Transcript of Wszelkie prawa zastrzeżone. Nieautoryzowane ... strumienia wyj cia do pliku .....136 Przekierowanie...

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.

Redaktor prowadzący: Michał Mrowiec

Projekt okładki: Studio Gravite / OlsztynObarek, Pokoński, Pazdrijowski, Zaprucki

Fotografia na okładce została wykorzystana za zgodą Shutterstock.com

Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: [email protected] WWW: http://helion.pl (księgarnia internetowa, katalog książek)

Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/bashpsMożesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Kody źródłowe wybranych przykładów dostępne są pod adresem:ftp://ftp.helion.pl/przyklady/bashps.zip

ISBN: 978-83-283-1489-4

Copyright © Helion 2015

Printed in Poland.

• Kup książkę• Poleć książkę • Oceń książkę

• Księgarnia internetowa• Lubię to! » Nasza społeczność

Spis tre ci

Rozdzia 1. Wprowadzenie .................................................................................. 9Jak dzia a Bash? ............................................................................................................. 10Za o enia tej ksi ki ....................................................................................................... 11

Uk ad rozdzia ów ..................................................................................................... 11Konwencje programistyczne .................................................................................... 12

Instalacja i konfiguracja rodowiska pracy ..................................................................... 12OpenSUSE 13.2 ....................................................................................................... 12Windows 7 ............................................................................................................... 14

Rozdzia 2. Powitanie ...................................................................................... 19Zmienne i ich warto ci ................................................................................................... 25Znak zach ty ................................................................................................................... 27Polecenie echo — wy wietlenie tekstu na ekranie ......................................................... 30Stringi i ich czenie ....................................................................................................... 30Polecenie cd — bie ca cie ka i jej zmiana .................................................................. 33

Ustalanie bie cej cie ki, czyli krótka wzmianka o zmiennej $PWD ..................... 33Zmiana bie cej cie ki ............................................................................................ 33

Polecenie chmod — zmiana uprawnie plików i katalogów .......................................... 33Tryb interaktywny/konwersacyjny i wsadowy ............................................................... 36Polecenie read — pobranie danych od u ytkownika ...................................................... 37

Rozdzia 3. U cisk d oni ................................................................................... 39Rozdzielenie instrukcji i polece .................................................................................... 42

rednik i przetwarzanie sekwencyjne ....................................................................... 42Ampersand i przetwarzanie równoleg e ................................................................... 43

Instrukcja warunkowa if ................................................................................................. 44Operator porównania stringów (i nie tylko ich) .............................................................. 49

Warto ci logiczne true/false, czyli brak typu w Bashu ............................................. 50Nawiasy kwadratowe w instrukcjach warunkowych ...................................................... 51

Brak nawiasów ......................................................................................................... 51Pojedyncze nawiasy ................................................................................................. 56Podwójne nawiasy kwadratowe ............................................................................... 58

Polecenie type — rozpoznawanie typu ........................................................................... 60

Poleć książkęKup książkę

6 Bash. Praktyczne skrypty

Rozdzia 4. Rozpoznanie p ci ............................................................................ 63Parametry wej ciowe ...................................................................................................... 68Operacje na stringach i notacja klamrowa ...................................................................... 71

Konkatenacja a zmienne specjalne ........................................................................... 72Dzielenie ci gów znakowych na mniejsze ............................................................... 73Podwójne rozwini cie zmiennej ............................................................................... 74

Operatory logiczne ......................................................................................................... 75Alternatywa .............................................................................................................. 75Negacja ..................................................................................................................... 76Koniunkcja ............................................................................................................... 77Notacja z pojedynczymi nawiasami kwadratowymi ................................................. 78

Poprawka drobnego b du .............................................................................................. 80

Rozdzia 5. Detektor liczb parzystych i nieparzystych ........................................ 85Zmienne liczbowe .......................................................................................................... 87

Wyra enia matematyczne w notacji z okr g ymi nawiasami ................................... 88Wyra enia matematyczne z poleceniem let .............................................................. 91Wyra enia matematyczne z poleceniem expr ........................................................... 92

Polecenie declare — oznaczenie typu dla zmiennej ....................................................... 93

Rozdzia 6. Generowanie zbiorów liczb spe niaj cych kryteria podzielno ci ......... 97P tla while ...................................................................................................................... 99Wyra enia matematyczne w instrukcjach steruj cych if oraz p tli while ..................... 101

Rozdzia 7. Silnia ........................................................................................... 103P tla for ........................................................................................................................ 104

Zapis arytmetyczny ................................................................................................ 104i++ oraz i--, czyli skrócony zapis inkrementacji/dekrementacji ................................... 107

Rozdzia 8. Analiza zbioru plików pod k tem daty ich ostatniej modyfikacji ...... 109P tla for zapis operuj cy na zbiorach ...................................................................... 112Operatory logiczne poza instrukcj steruj c if ............................................................ 113Wyra enia Basha .......................................................................................................... 116

Notacja $() .............................................................................................................. 116Notacja z grawisami ............................................................................................... 117Polecenie eval ......................................................................................................... 118Uwaga, niebezpiecze stwo! ................................................................................... 119

Polecenie stat ................................................................................................................ 121Polecenie date ............................................................................................................... 122

Konwersja z formatu czytelnego dla cz owieka do czasu uniksowego ................... 123Konwersja z czasu uniksowego do formatu czytelnego dla cz owieka ................... 124

Rozdzia 9. Czyszczenie pliku tekstowego ze zb dnych pustych wierszy ........... 127Operatory jednoargumentowe polecenia test w blokach warunkowych ....................... 130Instrukcja continue ....................................................................................................... 131Polecenie cat ................................................................................................................. 133Strumienie i ich przekierowanie ................................................................................... 135

Przekierowanie strumienia wyj cia do pliku .......................................................... 136Przekierowanie strumienia b dów do pliku ........................................................... 137Przekierowanie strumienia wyj ciowego i b dów do ró nych plików .................. 137Przekierowanie obu strumieni wyj ciowych do tego samego pliku ....................... 138Przekierowanie strumienia b dów do strumienia wyj cia i odwrotnie .................. 139Przekierowanie na strumie wej ciowy .................................................................. 139

Poleć książkęKup książkę

Spis tre ci 7

Rozdzia 10. Sortowanie liczb ........................................................................... 145P tla w p tli .................................................................................................................. 149Pobranie wszystkich parametrów wej ciowych programu ........................................... 151Zmienne tablicowe ....................................................................................................... 151

Inicjalizacja tablicy ................................................................................................ 152Zapisywanie warto ci w tablicach .......................................................................... 153Pobieranie warto ci z tablic .................................................................................... 154Tablice asocjacyjne, czyli klucze tekstowe zamiast indeksów liczbowych ............ 155Wypisanie wszystkich warto ci tablicy .................................................................. 156Pobranie ilo ci elementów znajduj cych si w tablicy ........................................... 157Przetworzenie ka dego elementu tablicy w p tli .................................................... 157

Rozdzia 11. System rezerwacji miejsc w sali kinowej ....................................... 161Instrukcja break ............................................................................................................ 164Blok warunkowy case jako alternatywa dla if .............................................................. 166

Dopasowanie do wielu warto ci w bloku case ....................................................... 168Eskalacja wykonania na nast pny blok w case ....................................................... 169

Funkcje ......................................................................................................................... 170Deklaracja funkcji .................................................................................................. 173Wywo ywanie funkcji ............................................................................................ 174Funkcje maj priorytet ............................................................................................ 174Funkcje maj pierwsze stwo .................................................................................. 175Funkcje mog si nadpisywa ................................................................................ 176Parametry wej ciowe .............................................................................................. 177Zmienne w funkcjach ............................................................................................. 178Wywo anie funkcji w wyra eniu $() Basha ............................................................ 183Zwracanie i pobieranie wyników funkcji ............................................................... 185Hermetyzacja funkcji ............................................................................................. 187Przekazywanie tablic w parametrach do funkcji .................................................... 192

Polecenie source ........................................................................................................... 196

Rozdzia 12. Sprawdzanie poprawno ci konfiguracji sieci komputerowej ............ 199Wprowadzenie teoretyczne ........................................................................................... 202

Systemy liczbowe ................................................................................................... 202Sie komputerowa .................................................................................................. 206

Sta e, czyli zmienne, których nie da si zmieni .......................................................... 207Polecenie readonly ................................................................................................. 208Polecenie declare .................................................................................................... 208

Operatory bitowe .......................................................................................................... 208Przesuni cia bitowe w lewo ................................................................................... 209Przesuni cia bitowe w prawo ................................................................................. 210Suma bitowa ........................................................................................................... 211Iloczyn bitowy ........................................................................................................ 212

Notacja klamrowa — podmiana zawarto ci ci gu znakowego na inn ........................ 213

Rozdzia 13. Ci gi Fibonacciego ...................................................................... 215Funkcje rekurencyjne w programowaniu ...................................................................... 218

Wydajno funkcji rekurencyjnych ........................................................................ 218Brak ograniczenia w ilo ci wywo anych funkcji rekurencyjnych .......................... 219

Wydajno rekurencyjnych funkcji w ci gach Fibonacciego ....................................... 219Wyk adnicza z o ono obliczeniowa .................................................................... 220Liniowa z o ono obliczeniowa ............................................................................ 222Polecenie time ........................................................................................................ 224

Poleć książkęKup książkę

8 Bash. Praktyczne skrypty

Rozdzia 14. Prosty kalkulator ze wsparciemdla arytmetyki zmiennoprzecinkowej ............................................. 229P tla until ...................................................................................................................... 233Potoki ........................................................................................................................... 234Polecenie printf zamiast echo ....................................................................................... 236

Liczby w wyniku .................................................................................................... 237Konwersja pomi dzy systemami liczbowymi ........................................................ 237Ci gi znaków w wyniku ......................................................................................... 239Modyfikatory .......................................................................................................... 239

Program bc ................................................................................................................... 241Arytmetyka zmiennoprzecinkowa .......................................................................... 241Precyzja liczb zmiennoprzecinkowych ................................................................... 242Konwersja pomi dzy systemami liczbowymi ........................................................ 242

Rozdzia 15. System rezerwacji miejsc w multipleksie kinowym ........................ 245Tablice wielowymiarowe ............................................................................................. 248P tla select .................................................................................................................... 248

Rozdzia 16. Rekurencyjne wyszukiwanie dat w plikach .................................... 251Polecenie grep .............................................................................................................. 254Wyra enia regularne ..................................................................................................... 255

Znaki specjalne ....................................................................................................... 255Alternatywa we wzorcach ...................................................................................... 255Atomy ..................................................................................................................... 257Zakresy znaków ..................................................................................................... 258Wielokrotne i opcjonalne dopasowania .................................................................. 260Rozszerzenia perlowe ............................................................................................. 263Podsumowanie ....................................................................................................... 266

Polecenie sort ............................................................................................................... 266Tu masz string, czyli wyra enie <<< ............................................................................ 268

Rozdzia 17. Rozwi zania wicze .................................................................... 271wiczenie 2.1 ............................................................................................................... 271wiczenie 2.2 ............................................................................................................... 272wiczenie 3.1 ............................................................................................................... 272wiczenie 4.1 ............................................................................................................... 273wiczenie 4.2 ............................................................................................................... 273wiczenie 5.1 ............................................................................................................... 274wiczenie 6.1 ............................................................................................................... 274wiczenie 6.2 ............................................................................................................... 275wiczenie 7.1 ............................................................................................................... 276wiczenie 8.1 ............................................................................................................... 276wiczenie 9.1 ............................................................................................................... 276wiczenie 10.1 ............................................................................................................. 277wiczenie 10.2 ............................................................................................................. 277wiczenie 10.3 ............................................................................................................. 278wiczenie 11.1 ............................................................................................................. 278wiczenie 12.1 ............................................................................................................. 279wiczenie 12.2 ............................................................................................................. 280wiczenie 13.1 ............................................................................................................. 282wiczenie 13.2 ............................................................................................................. 282wiczenie 13.3 ............................................................................................................. 283wiczenie 14.1 ............................................................................................................. 283wiczenie 15.1 ............................................................................................................. 284wiczenie 16.1 ............................................................................................................. 286

Skorowidz .................................................................................... 287

Poleć książkęKup książkę

Rozdzia 7.

Silnia

Od kilku rozdzia ów omawiamy kolejne elementy Basha na podstawie przyk adówmatematycznych. Mo e si to wydawa troch nudne w porównaniu do naszychpierwszych lekcji, które dotyczy y programowania na przyk adzie rad dotycz cychdobrego zachowania. Zapewniam jednak, e odrobina matematyki jeszcze nikomu niezaszkodzi a, a pozwala ona tworzy dobrane pod wzgl dem dydaktycznym przyk ady.

Na potrzeby tego rozdzia u uczyni ma y wyj tek i zaczniemy od ma ego wprowa-dzenia teoretycznego, poniewa nie ka dy Czytelnik musi wiedzie lub pami ta ,czym jest silnia. Jest ona prostym dzia aniem matematycznym i zapisuje si j w postacin!, gdzie n to dowolna liczba naturalna. Dzia anie to polega na obliczeniu iloczynukolejnych liczb naturalnych, które s wi ksze od 0 i nie wi ksze on n, natomiast silniaz 0 z definicji wynosi 1, czyli:

0! = 15

1! = 1

2! = 1 · 2 = 2

3! = 1 · 2 · 3 = 6

4! = 1 · 2 · 3 · 4 = 24

5! = 1 · 2 · 3 · 4 · 5 = 120

Przyk ad realizacji tego zadania w Bashu przedstawiam w listingu 7.1.

Listing 7.1. Silnia — przyk ad realizacji w Bashu

#!/usr/bin/bash

i=1 #nie-zero bo tworzy iloczynwynik=1 # nie-zero bo tworzy iloczynwhile (($i <= $1))do wynik=$(($wynik * $i)) i=$(($i + 1))doneecho $wynik

Poleć książkęKup książkę

104 Bash. Praktyczne skrypty

W skrypcie z listingu 7.1 przedstawiam realizacj zadania matematycznego przy u y-ciu jedynie znanych nam ju mechanizmów i technik. W listingu 7.2 natomiast zo-sta o wykonane to samo zadanie z zastosowaniem nieomówionej jeszcze notacji.

Listing 7.2. Silnia — przyk ad realizacji z u yciem p tli for w j zyku Bash

#!/usr/bin/bash

wynik=1 # nie-zero bo tworzy iloczynfor ((i=1; $i <= $1; i=$i+1))do wynik=$(($wynik * $i))doneecho $wynikecho $wynik

Listing 7.2 przedstawia alternatywn wersj skryptu z listingu 7.1. Spis nowo ci za-wiera tabela 7.1.

Tabela 7.1. Nowe terminy z listingu 7.2

Termin Opis

for (( ; ; )) For to s owo kluczowe pow oki Bash, odpowiednik while. Dzia a dok adnietak samo, ró ni si jednak zapisem, gdy jego warunek jest w tym wypadkuwyra enia matematycznego podzielony na trzy sekcje, które zostanomówione w cz ci teoretycznej. Mo liwe jest jeszcze czenie p tli forze zbiorami. To równie omówi w cz ci teoretycznej.

do S owo kluczowe pow oki Bash. Rozpoczyna p tl for, tak samo jak while.

done S owo kluczowe pow oki Bash. Ko czy p tl for, tak samo jak while.

i++ Skrócony zapis dla zwi kszenia licznika zmiennej o 1. Zostanie omówionybardziej szczegó owo w rozdziale teoretycznym.

Schemat blokowy dla skryptu z listingu 7.2 przedstawiam na rysunku 7.1.

P tla forW Bashu istnieje kilka rodzajów instrukcji steruj cych, które oferuj wielokrotne wy-konanie bloku kodu (tzw. p tle). Jedn z nich jest p tla for, która poza skróconymzapisem nie ró ni si niczym w porównaniu do p tli while.

Zapis arytmetycznyP tla for obs uguje kilka mo liwo ci dzia ania. Jedn z nich jest notacja wykorzystuj cawyra enia arytmetyczne. Ogólny zapis p tli w postaci pseudokodu zamieszczam poni ej:

dla (( instrukcje startowe; warunek wykonania p tli; instrukcje po ka dym przebiegu))wykonaj # blok p tli, który powinien zosta wykonany, je li warunek wykonania jest spe nionykoniec

Poleć książkęKup książkę

Rozdzia 7. Silnia 105

Rysunek 7.1.Schemat blokowydla skryptuz listingu 7.2

Na rysunku 7.2. znajduje si analiza porównawcza p tli while i for, której dokona emna przyk adzie skryptu z listingu 6.1 i stanowi cego jego alternatywn wersj skryptuz listingu 7.3.

Listing 7.3. Skrypt z listingu 6.1 przepisany na wersj z u yciem p tli for

#!/usr/bin/bash

min=$1max=$2modulo=$3i=$minfor ((i=$min; $i<=$max; i++))do reszta=$(($i % $modulo)) if [[ $reszta == 0 ]] then echo $i fidone

Poleć książkęKup książkę

106 Bash. Praktyczne skrypty

Rysunek 7.2. Analiza porównawcza skryptu z listingu 6.1 (po lewej) i skryptu z listingu 7.3(po prawej). Dotyczy ona ró nic wyst puj cych mi dzy instrukcjami steruj cymi for i while

Na rysunku 7.2 wida ró nice w zapisie mi dzy obiema p tlami. W mojej ocenie p tlawhile jest du o bardziej czytelna dla pocz tkuj cych programistów i spe nia w zasa-dzie wszystkie wymagania, realizuj c te same zadania co p tla for w zapisie arytme-tycznym, jednak e w inny sposób. Jedyn zalet , która przemawia za p tl for, jestliczba linii kodu potrzebnych do realizacji tego samego zadania. Musz jednak przyzna ,e z biegiem czasu coraz cz ciej korzystam z p tli for zamiast while, cho nie potra-

fi logicznie uzasadni tego wyboru.

Warto jeszcze wspomnie , e instrukcje startowe, warunkowe i ko cowe przebiegup tli for s instrukcjami opcjonalnymi. Oznacza to, e nie musimy ich wpisywa .Musimy jedynie pami ta o oddzielaj cych je rednikach. Mo e to pos u y do two-rzenia niesko czonych p tli, co przedstawiam w listingu 7.4.

Listing 7.4. Niesko czona p tla z u yciem p tli for

#!/usr/bin/bash

for ((;;))do echo "Wykonuj si dopóty, dopóki mnie nie zamkniesz"done

Z pozoru taka instrukcja jest nieprzydatna, poniewa do momentu, kiedy sami nie za-mkniemy programu, na przyk ad u ywaj c skrótu CTRL+C, program nie zako czydzia ania. Wbrew pierwszemu wra eniu ma to swoje zastosowanie, ale o tym opo-wiem w kolejnych rozdzia ach.

Ca y zapis p tli for w wersji arytmetycznej (poza cz ci b d c samym wyra e-niem) z o ony jest ze s ów kluczowych:

$ type -a for do done "((" "))"for jest s owem kluczowym pow okido jest s owem kluczowym pow okidone jest s owem kluczowym pow oki

Poleć książkęKup książkę

Rozdzia 7. Silnia 107

-bash: type: ((: nie znaleziono-bash: type: )): nie znaleziono$

i++ oraz i--, czyli skrócony zapisinkrementacji/dekrementacji

W Bashu, tak jak w innych popularnych j zykach programowania, dost pny jest skró-cony operator zwi kszenia warto ci zmiennej (inkrementacji; ang. incrementation) orazzmniejszenia (dekrementacji; ang. decrementation). Ich zapis wygl da nast puj co:

i++ to zwi kszenie warto ci zmiennej $i o 1, skrócony zapis dla i=$i+1

i-- to zmniejszenie warto ci zmiennej $i o 1, skrócony zapis dla i=$i-1

W odró nieniu od innych j zyków programowania, w Bashu nie mo na u ywa tychzapisów tak po prostu. Mo na je stosowa jedynie w notacji matematycznej, co za-prezentowa em w poni szym przyk adzie:

$ a=4$ a++-bash: a++: nie znaleziono polecenia$ declare -i b=4$ b++ # nie dzia a równie dla zmiennej typu integer-bash: b++: nie znaleziono polecenia$

Zapewne zastanawiasz si , gdzie si podzia ulubiony znak dolara, który powinienpoprzedza odwo anie do zmiennej. O tym, e jest on w tym wypadku zb dny, wiad-czy ten oto przyk ad:

$ c=4$ $c++-bash: 4++: nie znaleziono polecenia$

Bash zg asza b d, e polecenie 4++ nie istnieje. Dzieje si tak dlatego, e Bash niezna tego zapisu i wpierw próbuje rozwin zmienn jej warto ci , a nast pnie wykonapolecenie, które powsta o z warto ci zmiennej i doklejonego napisu ++. Spróbujmyudowodni t teori :

$ a="echo "$ a++-bash: a++: nie znaleziono polecenia$ $a++ # Bash wykona polecenie echo i wypisa dwa plusy na ekran++$

Poleć książkęKup książkę

108 Bash. Praktyczne skrypty

Jak wida na powy szym przyk adzie, Bash rozwin zmienn i wykona polecenie,które powsta o z wyniku po czenia obu stringów. To w a nie dlatego na ekranie poja-wi y si dwa plusy.

U ywanie skróconego zapisu w Bashu jest mo liwe jedynie w parze z wyra eniamimatematycznymi:

$ i=1$ ((i++))$ echo $i2$

Jednak równie w tym przypadku nie wstawia si dolara przed nazw zmiennej, gdyefekt b dzie taki sam jak w zapisie bez notacji arytmetycznej. Aby zrozumie , dla-czego tak si dzieje, trzeba zrozumie , jak dzia a interpreter. Najpierw podmienianes warto ci zmiennych, a nast pnie Bash próbuje wykona polecenie. A oto inny dowódna t teori :

$ polecenie="echo Interpreter "$ $polecenie"Bash"Interpreter Bash$

Innym wyt umaczeniem powodu, dla którego nie wstawiamy dolara, jest fakt, e zmie-niamy warto zmiennej numerycznej, zwi kszaj c lub zmniejszaj c j o 1. W pe nymzapisie warto do zmiennej przypisujemy równie bez znaku dolara, poniewa tenstosujemy jedynie w celu odwo ania do warto ci zmiennej, np. i=4 lub i=$i+2.

wiczenie 7.1

Napisz rozwi zanie do listingu 6.1, u ywaj c p tli for zamiast while.

Propozycje rozwi za znajduj si na ko cu ksi ki, w ostatnim rozdziale, zatytu-owanym „Rozwi zania wicze ”.

Poleć książkęKup książkę

SkorowidzA

adres IPv4, 201, 206algorytm sortowania, 149alternatywa, 75, 81

we wzorcach, 255ampersand, 43analiza

dzia ania potoków, 235parametrów wej ciowych, 69porównawcza skryptu, 106przekazywania tablic, 194zbioru plików, 109, 110

arytmetyka zmiennoprzecinkowa, 229, 241asercje o zerowej d ugo ci, 264, 265atomy, 257

Bbackslash, 27, 32Bash, 10bezpiecze stwo, 119biblioteka funkcji dla skryptu, 246bit wykonywalno ci, 23blok

case, 166, 167else – fi, 46warunkowy, 130

b d, 80sk adni, 53

b dna lista parametrów, 188brak nawiasów, 51

Cci g Fibonacciego, 215ci gi

znakowe, 73znaków w wyniku, 239

cyfra, 86czas uniksowy, 123czyszczenie pliku tekstowego, 127czytanie HEREDOC, 142

Ddata modyfikacji pliku, 109deklaracja funkcji, 173dekrementacja, 107detektor

liczb, 85parzysto ci, 86

dodawanie, 88uprawnie , 35

dokumentyHEREDOC, 142inline, 140

domy lny prompt, 27dopasowania, 256

opcjonalne, 260wielokrotne, 260

dopasowaniew bloku case, 168, 169

dost p doodczytu, 34uruchamiania, 34zapisu, 34

dynamiczne typowanie, 50dzia anie

bloku case, 167instrukcji break, 165polecenia return, 186potoków, 235

dzielenie, 89ci gów znakowych, 73

Poleć książkęKup książkę

288 Bash. Praktyczne skrypty

Eedytor Notepad++, 22, 142elementy

schematów blokowych, 41tablicy, 157

eskalacja wykonania, 169

Fformatery

liczbowe, 238polecenia date, 125polecenia stat, 123tekstowe, 240

funkcje, 164, 170, 174hermetyzacja, 187nadpisywanie, 176nadpisywanie zmiennych lokalnych, 182parametry wej ciowe, 177, 188pierwsze stwo, 175pobieranie wyników, 185priorytet, 174przekazywanie tablic, 192, 194rekurencyjne, 218u ycie zmiennych, 189widoczno zmiennych lokalnych, 181wywo ywanie, 174, 183zmienne globalne, 178zwracanie warto ci, 185, 190

Ggadatliwa wersja skryptu, 221generowanie zbiorów liczb, 97grawis, 117grupy znakowe, 262, 263

HHEREDOC, 140hermetyzacja funkcji, 187

Iidentyfikator procesu, 184iloczyn

bitowy, 212logiczny, 77

iloelementów dok adna, 261elementów dowolna, 261wywo anych funkcji rekurencyjnych, 219

implementacjaci gów Fibonacciego, 222iteracyjna, 226rekurencyjna, 226

indeks liczbowy, 155inicjalizacja

tablicy, 152zmiennej, 20

inkrementacja, 100, 107instalacja

programu Cygwin, 15rodowiska pracy

OpenSUSE 13.2, 12Windows 7, 14

instalator pakietów, 230instrukcja

break, 163, 164case, 163continue, 129, 131, 163if, 39, 44, 51, 101, 113

instrukcje steruj ce, 39interfejs graficzny KDE, 13interpretacja, 10interpreter, 10

Jj zyki s abo typowane, 50

Kkalkulator z menu, 229, 230kierunek wykonywania skryptów, 23klucze tekstowe, 155kod wyj cia, 55komentarz, 24komunikacja, 185konfiguracja

sieci, 199rodowiska pracy

OpenSUSE 13.2, 12Windows 7, 14

koniec pliku, 129koniunkcja, 77konkatenacja, 31, 72konsola, 10konwersja, 50

liczby dziesi tnej, 205niejawna, 50systemów liczbowych, 237, 242, 244z czasu uniksowego, 124z formatu czytelnego dla cz owieka, 123znaku ko ca linii, 23

kryteria podzielno ci, 97

Poleć książkęKup książkę

Skorowidz 289

Lliczba

dwójkowa, 204nieparzysta, 85parzysta, 85

liczby w wyniku, 237logi, 252lookingahead, 264lookingbehind, 264

czenie stringów, 30, 31

Mmaski sieci, 207mno enie, 89modulo, 90modyfikatory, 239

Nnadpisywanie zmiennych lokalnych, 182nawiasy

klamrowe, 261kwadratowe, 40, 51

podwójne, 58pojedyncze, 78

okr g e, 88pojedyncze, 56

negacja, 76niesko czona p tla, 163notacja

$(), 116${}, 202klamrowa, 71–74, 213liczbowa, 35literowa, 35z grawisami, 117z okr g ymi nawiasami, 88z podwójnymi nawiasami, 58, 59z pojedynczymi nawiasami kwadratowymi, 78

notacje instrukcji warunkowych, 52Notepad++, 142

Oobliczanie

elementów ci gu, 216pot gi, 171

obs uga menu, 245odejmowanie, 88okno terminala, 10opcje polecenia chmod, 36opcjonalne wyst pienie elementu, 262operacje

koniunkcji, 77matematyczne, 86na stringach, 71, 73na tablicach, 158

operator||, 66, 75-ge, 146-le, 99koniunkcji, 77, 79mniejszo ci, 146mniejszy-równy, 99modulo, 86negacji, 76porównania, 49przypisania, 21

operatorybitowe, 208do przetwarzania tekstu, 74jednoargumentowe, 130leniwe, 114logiczne, 66, 75, 80, 113

oznaczenie typu, 93

Ppakiety rodowiska Cygwin, 230parametry

poleceniabc, 241cat, 134date, 124echo, 30grep, 254read, 38, 140stat, 122type, 60

wej ciowe, 68, 177funkcji, 188programu, 151

p tla, 232for, 104, 112for operuj ca na zbiorach, 113niesko czona, 106, 163select, 28, 248until, 233w p tli, 149while, 99, 101, 233

Poleć książkęKup książkę

290 Bash. Praktyczne skrypty

pobieranieparametrów wej ciowych, 151warto ci z tablic, 146, 154

podmiana zawarto ci ci gu znakowego, 213podpow oki, 184podwójne rozwini cie zmiennej, 74polecenia w HEREDOC, 141polecenie

cat, 128, 133cd, 22, 24, 33chmod, 24, 33, 35date, 111, 122declare, 93, 208echo, 20, 24, 30, 129eval, 118exit, 55expr, 92grep, 254let, 91local, 180printf, 236, 238, 240read, 24, 37, 38, 140readonly, 208return, 186source, 163, 196stat, 111, 121test, 53, 78, 129time, 224type, 60typeset, 94

porównanieoperatorów logicznych, 80wywo ania funkcji, 183

pot gowanie, 90potoki, 234precyzja

alternatywy, 258liczb zmiennoprzecinkowych, 242

priorytety w zmiennych specjalnych, 72program

CMD, 14Cygwin, 14PowerShell, 14

prompt, 20, 27przekazywanie

tablicprzez nazw , 194przez warto ci, 192

przekierowaniena strumie wej ciowy, 139obu strumieni wyj ciowych, 138strumienia, 135, 232

b dów, 137, 139do pliku, 136–138

wyj cia, 136–139przeliczanie liczb

binarnych, 204dziesi tnych, 205

prze czanie interpretacji wyra e regularnych,254

przesuni cia bitowew lewo, 209w prawo, 210

przetwarzanierównoleg e, 43sekwencyjne, 42

przypisanie do zmiennej, 86puste wiersze, 127

Rrekurencyjne wyszukiwanie dat, 251reszta z dzielenia, 90rozdzielenie instrukcji i polece , 42rozpoznawanie typu, 60rozszerzenia perlowe, 263rozwi zania wicze , 271rzutowanie, 50

Sschemat blokowy, 41, 42, 45, 47, 68, 98, 105, 112,

133, 165, 217, 253serwer DHCP, 199sie komputerowa, 206silnia, 103sk adnia

$(), 111HEREDOC, 141

skrócona forma instrukcji warunkowej, 111skrypt rozpoznaj cy p e , 63, 66s owo kluczowe

do, 99done, 99else, 40fi, 40if, 40then, 40while, 99

sortowanie liczb, 145sprawdzanie

poprawno ci konfiguracji sieci, 199zgodno ci adresów, 201

sta e, 207standardowe wyj cie, 20stringi, 30

w instrukcjach warunkowych, 56

Poleć książkęKup książkę

Skorowidz 291

strumie , 135b dów, stderr, 136wej cia, stdin, 135wyj cia, stdout, 20, 135wyj cia podpow oki, 186

suma bitowa, 202, 211system

liczbowy, 202binarny, 204dziesi tny, 203, 237ósemkowy, 237szesnastkowy, 237

operacyjnyOpenSUSE, 12Windows 7, 14

rezerwacji miejsc, 161, 245

cie ka, 22, 24, 33rednik, 40, 42

Ttablice, 152

asocjacyjne, 155ilo elementów, 157indeks, 155inicjalizacja, 152pobieranie warto ci, 154przetworzenie ka dego elementu, 157wielowymiarowe, 248wypisanie wszystkich warto ci, 156zapisywanie warto ci, 153

termin$, 20read, 24

terminal, 10tryb

gadatliwy, 220interaktywny, 10, 36, 196odpluskwiania kodu, 28tylko do odczytu, 202wsadowy, 10, 36, 196

tylda, 22

Uuprawnienia, 33–35

nieefektywne, 34uruchamianie skryptu, 21usuwanie pustych wierszy, 127u ycie potoków, 244

Wwalidacja, 120warto ci logiczne, 50warto zmiennej, 25, 37wczytywanie dokumentów HEREDOC, 141wersja gadatliwa, 220weryfikacja zawarto ci pliku tekstowego, 128widoczno zmiennych lokalnych, 181w a ciciel pliku, 33wrapper, 56wstrzykni cie kodu, 120wydajno funkcji rekurencyjnych, 218wykonanie podpow oki, 185wykrycie trybu pracy, 36wypisywanie

ci gu znaków, 225warto ci tablicy, 156

wyra eniaBasha, 116matematyczne, 88

w instrukcjach steruj cych, 101w p tli while, 101z poleceniem expr, 92z poleceniem let, 91

regularne, 253, 255alternatywa, 255atomy, 257grupy znakowe, 262rozszerzenia perlowe, 263zakresy znaków, 258znaki specjalne, 255

wyra enie$(), 183<<, 140

wyszukiwanie dat w plikach, 251wy wietlanie napisu, 19, 30wywo ywanie funkcji, 174wzorce, 255

Zzagnie d one instrukcje warunkowe, 44, 46, 48zako czenie skryptu, 55zakresy

liczbowe, 258literowe/znakowe, 258, 260

zapisywanie warto ci w tablicach, 153zastosowanie zmiennych lokalnych, 180zbiór liczb, 97zgodno adresów IPv4, 201z o ono obliczeniowa

liniowa, 222wyk adnicza, 220

Poleć książkęKup książkę

292 Bash. Praktyczne skrypty

zmianabie cej cie ki, 33uprawnie plików i katalogów, 33warto ci zmiennej, 26

zmienna, variable, 21, 25$?, 53$@, 146$PWD, 33

zmienneglobalne, 178, 185liczbowe, 87lokalne, 180specjalne, 72, 184tablicowe, 146, 151tylko do odczytu, 207w funkcjach, 178w HEREDOC, 141

znak#, 24&, ampersand, 43@, 27, 124=, 21

gwiazdki, 261kontynuacji wiersza, 27ko ca linii, 22równo ci, 40rednika, 40

tyldy, 22, 33ucieczki, escape character, 28, 32zach ty, prompt, 20, 24, 27zapytania, 262

znakidopasowuj ce, 263specjalne, 28–31, 255specjalne Perla, 263

zwracanie warto ci, 185

le zaprojektowaneparametry wej ciowe, 188u ycie zmiennych, 189zwracanie warto ci, 190

Poleć książkęKup książkę