Sprawko Linux_2. doc.doc

(29 KB) Pobierz

Sprawozdanie Nr 2

Temat: Powłoka BASH

Wykonał:

Bartłomiej Łaszek

 

Data oddania:

Ocena:

Uwagi prowadzącego:

 

1.      Tworzenie zmiennej

$nazwa_zmiennej = wartość zmiennej

odczytujemy poleceniem echo

$echo $nazwa_zmiennej

2.      Listowanie zmiennych powłoki i ich usuwanie

$set

wyświetla listę zmiennych

              $unset nazwa_zmiennej

                    usuwamy zmienną

3.      Cytowanie ciągów znaków

Wartości przypisywane zmiennym muszą być ciągiem znaków nie zawierającym spacji i znaków specjalnych. Jednak można takie wartości przypisywać zmiennej używając:

''    ''               - podwójnych cudzysłowów prostych

'     '              - pojedynczych cudzysłowów prostych

Można też użyć wyniku polecenia Linuxa jako argumentu wiersza poleceń – wtedy używamy:

`     `               - cudzysłowów odwrotnych

$notatka =  ''Mam dziś dobry humor''

$echo $notatka

4.      Skrypty

 

Skrypt to niekompilowany tekstowy plik wykonywalny, zawierający jakieś polecenia systemowe oraz polecenia sterujące jego wykonaniem (instrukcje, pętle itp.). Wykonywany jest tylko i wyłącznie przez interpreter ( tutaj /bin/bash), który tłumaczy polecenia zawarte w skrypcie na język zrozumiały dla procesora.

 

              $ history

              Wszystkie zdarzenia zostaną ponumerowane, dostęp do nich jest możliwy poprzez               użycie klawiszy kursor w dół i kursor w górę. Powłoka BASH ma funkcję               wyszykiwania i uzupełniania zdarzeń.

              Należy wprowadzić tę część zdarzenia, którą pamiętamy, wciskamy klawisz Esc, zaraz za               nim klawisz Tab, a zdarzenie pasujące do wprowadzonego tekstu zostanie znalezione i               wyswietlone.

              Istnieją różne sposoby odwołania się do polecenia z listy historii. Przykładowo:

              $ !5

              Odwołanie do polecenia nr 5 z listy historii.

              $ !ls

              Odwołanie do pierwszego znalezionego na liście polecenia zaczynajacego się ls.

              $ !-2

              Odwołanie do drugiego od końca listy polecenia.

              Uwaga: polecenia są numerowane według kolejności ich wykonywania.

              Sposoby edycji zdarzeń historii

              Istnieją dwa sposoby edycji:

              pierwszy wykorzystuje możliwość edytora wiersza poleceń do odwołania sie do zdarzenia               i edycji polecenia za pomocą zestawu poleceń edytora emacs. Zestaw poleceń znajduje się

              poniżej:

              [Ctrl+p] – przejście do poprzedniego polecenia listy historii

              [Ctrl+n] - przejście do następnego polecenia listy historii

              [Ctrl+<] - przejście na początek listy historii

              [Ctrl+>] - przejście na początek listy historii

              /wzorzec – przeszukiwanie listy wstecz

              ?wzorzec – przeszukiwanie listy wprzód

              n – powtórzenie przeszukiwania

              drugi wykorzystuje do edycji poleceń edytor (domyslnie vi) wskazywany zmienną               FCEDIT. W czasie wykonywania polecenia można wskazać wykorzystywany edytor,               przykładowo               emacs.

              $ fc 5

              Wywołanie domyślnego edytora dla edycji 5ego polecenia listy

              $ fc -e emacs 5

              Wywołanie edytora emacs dla edycji 5ego polecenia listy

             

              Instrukcje warunkowe

 

Instrukcja warunkowa if

Sprawdza czy warunek jest prawdziwy, jeśli tak to wykonane zostanie polecenie lub polecenia znajdujące się po słowie kluczowym then. Instrukcja kończy się słowem fi.

 

Składnia:

if warunek

then

  polecenie

fi

if warunek

then

  polecenie1

else

  polecenie2

fi

Instrukcja case

Pozwala na dokonanie wyboru spośród kilku wzorców. Najpierw sprawdzana jest wartość zmiennej po słowie kluczowym case i porównywana ze wszystkimi wariantami po kolei.

 

Składnia:

case zmienna in

  "wzorzec1") polecenie1 ;;

  "wzorzec2") polecenie2 ;;

  "wzorzec3") polecenie3 ;;

  *) polecenie_domyślne

esac

              Pętle

Pętla for

Wykonuje polecenia zawarte wewnątrz pętli, na każdym składniku listy (iteracja).

Składnia:

for zmienna in lista

do

  polecenie

done

Pętla select

Wygeneruje z listy słów po in proste ponumerowane menu, każdej pozycji odpowiada kolejna liczba od 1 wzwyż. Poniżej menu znajduje się znak zachęty PS3 gdzie wpisujemy cyfrę odpowiadająca wybranej przez nas pozycji w menu.

 

Składnia:

select zmienna in lista

do

  polecenie

done

Pętla while

Najpierw sprawdza warunek czy jest prawdziwy, jeśli tak to wykonane zostanie polecenie lub lista poleceń zawartych wewnątrz pętli, gdy warunek stanie się fałszywy pętla zostanie zakończona.

Składnia:

 

while warunek

do

polecenie

done

Pętla until

Sprawdza czy warunek jest prawdziwy, gdy jest fałszywy wykonywane jest polecenie lub lista poleceń zawartych wewnątrz pętli, miedzy słowami kluczowymi do a done. Pętla until kończy swoje działanie w momencie gdy warunek stanie się prawdziwy.

Składnia:

 

until warunek

do

polecenie

done

Polecenie read

Czyta ze standardowego wejścia pojedynczy wiersz.

Składnia:

read -opcje nazwa_zmiennej

Funkcje

Coś w rodzaju podprogramów. Stosuje się je gdy w naszym skrypcie powtarza się jakaś grupa poleceń, po co pisać je kilka razy, skoro można to wszystko umieścić w funkcjach. Do danej funkcji odwołujemy się podając jej nazwę, a wykonane zostanie wszystko co wpisaliśmy między nawiasy { }, skraca to znacznie długość skryptu.

Składnia:

function nazwa_funkcji

{

polecenie1

polecenie2

polecenie3

}

 

Przykładowe skrypty

             

              #!/bin/bash

echo "Podaj cyfre 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 "To nie jest dzień tygodnia"

esac

 

Ten skrypt po uruchomieniu go zapyta nas o jakąś liczbę. Może być to dowolna liczba. Co więcej jeżeli nawet podana wartość nie będzie żadną liczbą, to i tak zostanie wyświetlona tzw informacja o błędzie. W tym przypadku informacja jaka zostanie wyświetlona jest nastepująca ''to nie jest dzień tygodnia''. Jest to prosty skrypt który potrzebuje do działania tylko paru zmiennych.

 

#!/bin/bash

echo "witam policzę twoje miejsca zerowe funkcji kwadratowej"

echo "wprowadź wartość przy A"

read x2

echo "wprowadź wartość przy B"

read x1

echo "wprowadź wartość wyrazu C"

read x0

let "del=$x1*$x1+(-4*$x2*$x0)"

del1=`echo "sqrt ($del)" | bc`

if let "$del<0"

then

              echo "brak miejsc zerowych"

elif "$x2=0"

              then

                            echo "to nie jest funkcja kwadratowa"

elif [ $del -eq 0 ]

              then

                            let "po=(-1*$x1)/(2*$x2)"

                            echo "pierwiastek to $po"

              else

                            let "p1=(-1*$x1-$del1)/(2*$x2)"

                            let "p2=(-1*$x1+$del1)/(2*$x2)"

                            echo "pierwiastki to x1=$p1 i x2=$p2"

fi

Ten skrypt policzy nam miejsca zerowe funkcji kwadratowej i poda nam je w postaci liczb całkowitych. Nie jest on co prawda doskonały ale jest bardziej rozbudowany niż poprzedni.

 

Zgłoś jeśli naruszono regulamin