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ę