• Nie Znaleziono Wyników

Programowanie w języku powłoki kurs BASH. Cz. 3

N/A
N/A
Protected

Academic year: 2022

Share "Programowanie w języku powłoki kurs BASH. Cz. 3"

Copied!
5
0
0

Pełen tekst

(1)

Programowanie w języku powłoki – kurs BASH Cz. 3

1. instrukcja CASE – pozwala na dopasowanie zmiennej do podanego wzorca i skierowanie wykonania skryptu do odpowiedniej sekcji. Poszczególne warianty są sprawdzane w kolejności od słowa kluczowego „case”. Przypasowanie domyślne oznaczone symbolem * zostanie wykonane gdy zmienna nie będzie pasować do żadnego z podanych wzorców. Stosowanie go pozwala na zabezpieczenie skryptu przed ewentualnymi błędami.

Składnia:

case zmienna in

"wzorzec1") polecenie1 ;;

"wzorzec2") polecenie2 ;;

"wzorzec3") polecenie3 ;;

*) polecenie_domyślne esac

2. pętla FOR. Wykonuje polecenia zawarte wewnątrz pętli.

Składnia polecenia:

for zmienna in lista do

polecenie done

Przykład:

#!/bin/bash

echo "Podaj cyfrę dnia tygodnia"

read d case "$d" in

"1") echo "Poniedziałek" ;;

"2") echo "Wtorek" ;;

"3") echo "Środa" ;;

"4") echo "Czwartek" ;;

"5") echo "Piątek" ;;

"6") echo "Sobota" ;;

"7") echo "Niedziela" ;;

*) echo "Nic nie wybrałeś"

esac

Przykład:

for x in jeden dwa trzy do

echo "To jest $x"

done

(2)

wartością zmiennej x stają się po kolei elementy jeden, dwa, trzy po czym wykonywane są polecenia po słowie kluczowym Do.

Polecenie jest bardzo przydatne w przypadku wykonywania operacji seryjnej na plikach lub katalogach. Przykładowo jeśli chcemy zyskać listę wszystkich plików *.sh to można to zrobić wg przykładu:

3. Polecenie SELECT. Słuzy do tworzenia interaktywnego menu w którym każdej pozycji odpowiada kolejna liczba od 1 do n. Zaraz po menu wyświetlany jest znak zachęty PS3 w oczekiwaniu na wprowadzenie wyboru. W razie nie wybrania żadnej z pozycji i naciśnięcia klawisza enter, menu zostanie wyświetlone ponownie. Wybrana opcja jest zapisywana pod zmienną REPLY. Jeśli odczytanym znakiem będzie EOF (Ctrl+d) to selekt zakończy pracę. Pętla działa do czasu wykonania polecena break lub return.

Składnia polecenia:

select zmienna in lista do

polecenie done

4. Pętla WHILE, najpierw sprawdza warunek a potem wykonuje polecenia zawarte pomiędzy słowami kluczowymi DO..DONE. Pętla działa dopuki warunek staje się fałszywy.

Składnia:

while warunek

Przykład:

#!/bin/bash for x in *.sh do

echo "plik $x"

done

Przykład:

#!/bin/bash

echo "Co wybierasz?"

select y in X Y Z Quit do

case $y in

"X") echo "Wybrałeś X" ;;

"Y") echo "Wybrałeś Y" ;;

"Z") echo "Wybrałeś Z" ;;

"Quit") exit ;;

*) echo "Nic nie wybrałeś"

esac break done

(3)

do

polecenie done

5. pętla UNTIL, sprawdza czy warunek jest prawdziwy, a polecenia są wykonywane wtedy gdy warunek jest fałszywy.

Składnia:

until warunek do

polecenie done

6. Polecenie READ. Służy do wprowadzania danych ze standardowego wejścia.

Składnia:

Read – opcje zmienna

Polecenie pozwala na pobranie wartości kilku zmiennych wg przykładu:

Przykład:

#!/bin/bash x=1;

while [ $x -le 20 ]; do echo "komunikat nr: $x"

x=$[x + 1]

done

Przykład:

#!/bin/bash x=1;

until [ $x -ge 10 ]; do echo "komunikat nr: $x"

x=$[x + 1]

don

Przykład:

#!/bin/bash

echo -n "Wpisz coś:\a"

read wpis echo "$wpis"

Przykład:

#!/bin/bash

echo "Wpisz cztery wartości:"

read a b c

echo "Wartość zmiennej a to: $a"

echo "Wartość zmiennej b to: $b"

echo "Wartość zmiennej c to: $c"

(4)

Opcje polecenia:

• -p pokaże znak zachęty bez znaku nowej linii

• -a kolejne wartości przypisywane są do klejnych indeksów zmiennej tablicowej

• -e jeśli nie podano nazwy zmiennej to pobrana wartość trafia do zmiennej $REPLY

7. Funkcje. Podobnie jak w innych językach programowania, tak i w bash istnieje możliwość dzielenia kodu skryptu na funkcjonalne bloki zwane funkcjami.

Składnia:

function nazwa_funkcji {

polecenie1 polecenie2 polecenie3 }

Funkcje można umieścić w innym pliku, przez co skrypt właściwy będzie bardziej czytelny.

Aby z takich funkcji w osobnym pliku skorzystać należy do skryptu plik z definicją funkcji podlinkować. Tworzy się to poprzez zapis: . ~/naszplik_z_funkcjami (kropka spacja i nazwa pliku z definicją/definicjami funkcji). Samo wywołanie danej funkcji przebiega już tak jak w przypadku funkcji zadeklarowanej w jednym pliku.

8. Obliczanie wyrażeń arytmetycznych przeprowadza się wg schematu:

$((wyrażenie)) lub $[wyrażenie]

Przykłady:

#!/bin/bash

read -p "Pisz:" odp echo "$odp"

#!/bin/bash

echo "Podaj elementy zmiennej tablicowej:"

read tablica echo "${tablica[*]}"

#!/bin/bash echo "Wpisz coś:"

read -e

echo "$REPLY"

Przykład:

#!/bin/bash echo $((8/2))

wynik=$[4*5/2]

echo "$wynik"

read -e

echo "$REPLY"

Przykład:

#!/bin/bash

for pliki_html in $(ls *.html) do

numer=$((numer+1)) echo "$numer. "

echo $pliki_html done

(5)

Przeprowadzanie obliczeń arytmetycznych można także zrealizować za pomocą polecenia LET.

Przykłady:

#!/bin/bash

liczba1=5 liczba2=6

let wynik=liczba1*liczba2 echo $wynik

Cytaty

Powiązane dokumenty

Zastanów si¦, jak wygl¡da twierdzenie o arytmetyce granic, gdy s¡ one niewªa±ciwe.. Jego granica

Utrata zwi¸ azk´ ow fazowych (tzw. koherencji) zredukowanego opera- tora stanu w wyniku ewolucji uk ladu rozszerzonego jest nazywana dekoherencj¸

Uzasadnić, że przestrzeń liniowa wszystkich wielomianów (rzeczywistych bądź ze- spolonych) nie jest przestrzenią Banacha w żadnej

Udowodnić, że średnia arytmetyczna tych liczb jest równa n+1 r

Aktualnie oferta szkoleniowa została skierowana do Poradni Psychologiczno – Pedagogicznych z terenu Małopolski – odbyły się już pierwsze szkolenia..

[r]

Dane są dodatnio (prawostronnie) asymetryczne wtedy i tylko wtedy gdy ich funkcja symetrii jest niemalejąca.. Wykres dowolnej funkcji symetrii leży w pewnym

GEOMETRIA ALGEBRAICZNA, Lista 12 (na