From: xf0r3m Date: Tue, 14 May 2024 12:54:23 +0000 (+0200) Subject: Kontynuowanie tworzenia dodatku A. Podrozdział 18.4.2. X-Git-Url: https://gitweb.morketsmerke.org/?a=commitdiff_plain;h=b569bd6c275deb64a20f00c3433b6b3054187d3d;p=mmdev.git Kontynuowanie tworzenia dodatku A. Podrozdział 18.4.2. --- diff --git a/articles/terminallog/Linux.Podstawy.html b/articles/terminallog/Linux.Podstawy.html index 4f54138..e52d136 100644 --- a/articles/terminallog/Linux.Podstawy.html +++ b/articles/terminallog/Linux.Podstawy.html @@ -13895,7 +13895,113 @@ else #Blok dla fałszu obu warunków; fi -

18.3.2. Konstrukcja warunkowa - case

+

18.3.2. Konstrukcja warunkowa - case

+

+ Inny rodzajem konstrukcji warunkowej, jest konstrukcja + case, działa ona trochę na innej zasadzie niż + konstrukcja if-then-else. Nie mam tutaj klasycznego warunku, + a jedynie zmienna, która jest porównywana z zapisanymi przez + programistę wartościami (przypadkami). Przypadki definiują + bloki kodu, w momencie gdy wartość zmiennej jest równa wartości + danego przypadku wówczas BASH wykona instrukcje zapisane w bloku + tego przypadku. +

+
+case $alphabet; in
+  'a') echo "A";;
+  'b') echo "B";;
+esac
+
+

+ Zmienna alphabet będzie kolejno + porównywana z przypadkami 'a' + 'b'. Jeśli zostanie odnaleziony + odpowiedni przypadek, wówczas zostanie uruchomiony odpowiedni blok + kodu. Zwróćmy uwagę na to, że bloki kodu poszczególnych przypadków + zakończone są podwójnym średnikiem, jest to wymagane, a jego + pominięcie spowoduje błąd powłoki. +

+

+ Konstrukcja Case posiada przypadek uniwersalny + wykorzystywany gdy zmienna nie pasuje, do żadnego z przypadków. + Wartość takiego przypadku zapisuje się symbolem gwiazdki + (*). +

+
+case $alphabet; in
+  'a') echo "A";;
+  'b') echo "B";;
+   *) echo "To nie jest litera alfabetu";;
+esac
+
+

+ W przypadku konstrukcji case, bloki kodu mogą nie być aż + tak widoczne. Niemniej jednak blok rozpoczyna się od wskazania + wartości przypadku i obejmuje wszystkie instrukcje, aż do napotkania + podwójnego średnika. Samo wskazanie wartości przypadku nie musi się + ograniczać do pojednczej wartości, ale może zawierać warianty. +

+
+case $alphabet; in
+  'a'|'A') echo "A";;
+  'b') echo "B";;
+   *) echo "To nie jest litera alfabetu";;
+esac
+
+

+ Konstrukcja case, stosowana jest głównie po to aby nie + tworzyć kaskady konstrukcji if-then-elif-else. Każda + konstrukcja case, kończy się słowem kluczowym + esac. +

+

18.4. Pętle

+

+ Pętle w programowaniu służa wykonywaniu powtarzalnych czynności + pod pewnym warunkiem. W bloku pętli element warunku + (najprawdopodobniej) ulega zmiania, tak aby pętla zakończyła się + i interpretacja programu wróciła na właściwy tor. Jeśli tak się nie + dzieje, to wówczas mamy doczynienia z nieskończoną pętlą, tego typu + konstrukcje nie zawsze muszą oznaczać pełnego wykorzystania zasobów + komputera, w zależności co znajduje się w ich bloku kodu. W BASH-u + dość często wykorzystywane są dwa rodzaje pętli. +

+

18.4.1. Pętla while

+

+ Pętla while jest podstawowm rodzajem pętli, który potrzebuje + do działania spełnionego warunku, wówczas uruchamiana jest + sekwencja poleceń znajdujące sie w bloku tek pętli. W przypadku tego + rodzaju pętli istotne jest utworzenie licznika - + zmiennej, która będzie kontrolować ilość powtórzeń pętli. Licznik + zmieniany jest zazwyczaj, gdzieś na samym końcu pętli lub jego + zmiana jest użależniona od określonego warunku. Ze względu na to, iż + warunek pętli musi być prawdą, aby mogła ona w ogóle rozpocząć + działanie - licznik musi zostać zdefiniowany przed pętlą. Poniżej + znajduje się przykładowa konstrukcja pętli while wyświetlająca + kwadraty pierwszych 10 dodatnich liczb. +

+
+count=1
+while [ $count -le 10 ]; do
+  pow=$(expr $count \* $count);
+  echo "${count}: $pow";
+  count=$(expr $count + 1);
+done
+
+

+ Pętla while, rozpoczyna się od słowa kluczowego + while, po którym następuję + warunek. Warunek (jak sama nazwa pętli może wskazywać) musi być + spełniony, aby pętla się uruchomiła, bez tego pętla nie wykona się + ani razu. Warunek operuje na klasycznych instrukcjach warunkowych. + Co pozwala stwierdzić, że pętla while działa na takiej + samej zasadzie jak konstrukcja if. Po warunku obowiązkowo + występuje średnik, blok kodu zawierającego instrukcje do wykonania w + pętli otwiera słowo kluczowe do. + Po tym słowie umiesczana jest sekwencja poleceń, która będzie + wykonywana dopóki warunek będzię spełniony (będzie zwracać prawdę). + Blok kodu pętli, kończy się słowem kluczowym + done. +

2024; COPYLEFT; ALL RIGHTS REVERSED;