Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Proponowany program wykładu monograficznego 1.Elementy programowania w językach skryptów w systemie UNIX. 2.Posługiwanie się językiem awk i edytorem strumieniowym.

Podobne prezentacje


Prezentacja na temat: "Proponowany program wykładu monograficznego 1.Elementy programowania w językach skryptów w systemie UNIX. 2.Posługiwanie się językiem awk i edytorem strumieniowym."— Zapis prezentacji:

1 Proponowany program wykładu monograficznego 1.Elementy programowania w językach skryptów w systemie UNIX. 2.Posługiwanie się językiem awk i edytorem strumieniowym sed 3.Praca na klastrach i superkomputerach w centrach obliczeniowych; systemy kolejkowania. 4.Obliczenia równoległe. 5.Baza danych PDB i inne bazy danych cząsteczek. 6.Wizualizacja cząsteczek i wielkości z nimi związanych. 7.Programy obliczeniowe używane w chemii kwantowej oraz obliczeniach dynamiki dużych układów molekularnych.

2 Języki skryptów Powłoka - Interpreter poleceń wydawanych przez użytkownika. Powłoki w systemie UNIX: NazwaAutorPliki konfiguracyjne Zastosowania shKen Thompson Steven Bourne Nieinteraktywne (skrypty) bashSteven Bourne.bashrcwszystkie kshDavid Korn.profilewszystkie cshBill Joy.cshrc.loginwszystkie tcsh.tcshrc.loginwszystkie

3 Jakie powłoki są dostępne w systemie: etoh:~> ls -l /bin/*sh* lrwxrwxrwx 1 root root 4 Oct /bin/ash -> dash -rwxr-xr-x 1 root root Dec /bin/bash lrwxrwxrwx 1 root root 21 Oct /bin/csh -> /etc/alternatives/csh -rwxr-xr-x 1 root root May /bin/dash lrwxrwxrwx 1 root root 4 Oct /bin/rbash -> bash lrwxrwxrwx 1 root root 4 Oct /bin/sh -> bash -rwxr-xr-x 1 root root May /bin/tcsh Sprawdzanie powłoki etoh:~> env | grep SHELL SHELL=/bin/tcsh

4 Zmienne powłoki cshsh Ustawianie zmiennych lokalnych set zmienna = wartość np. set zm = ala zmienna = wartość np. zm = ala Ustawianie zmiennych środowiskowych (przekazywanych do procesów wywoływanych przez skrypt) setenv zmienna = wartość np. setenv zm = ala zmienna = wartość export zmienna albo: export zmienna=wartość np. export zm=ala

5 Skrypt: zbiór poleceń w języku powłoki zapisanych w pliku i wykonywanych zgodnie z sekwencją zapisu Składnia (ogólnie): #!powłoka opcje polecenie1 … #komentarz … polecenien Przykład (csh) #!/bin/csh -f echo Prosty skrypt echo –n dzisiaj jest date #Podawanie aktualnego katalogu echo Jestesmy w katalogu $cwd echo Mamy tu nastepujace pliki #Listowanie plikow ls -l

6 Parametry (argumenty) skryptu Skrypt można wywoływać jak każde polecenie unixowe, np:./skrypt.sh ala ma kota Każdy parametr stojący za nazwą skryptu jest argumentem, który jest widziany we wnętrzu skryptu. Wewnątrz skryptu odwołujemy się do argumentów poprzez $1, $2, …, itd. Argument zerowy ($0) jest nazwą skryptu Liczba argumentów jest zakodowana w zmiennej $#argv

7 Podstawienie efektu wykonania polecenia pod zmienną set zmienna = `polecenie` np. set a = `echo Ala ma kota` Arytmetyka expr wyrażenie1 operator wyrażenie2 np. expr Podstawienie: jak przy podstawieniu efektu wykonania polecenia set zmienna = `expr wyrażenie1 operator wyrażenie2` np. set x = `expr 2 * 3`

8 Operatory w poleceniu expr + dodawanie -odejmowanie * albo \* mnożenie / albo \/dzielenie całkowite %reszta z dzielenia Uwaga! Polecenie expr umożliwia tylko arytmetykę całkowitą. Do arytmetyki rzeczywistej należy użyć języka awk albo kalkulatora bc wywoływanego z opcją –l.

9 Do grupowania poszczególnych części wyrażenia w poleceniu expr służą nawiasy – tak jak w zwykłej arytmetyce. Nawias należy poprzedzić odwróconym ukośnikiem (backslashem) Przykłady: expr \( $a + $b \) \* $c (wymuszanie dodawania przed mnożeniem) set i = `expr $i - \( $i / 2 \) \* 2 ` (zmienna i będzie miała po tej operacji wartość równą reszcie z dzielenia całkowitego i przez 2)

10 Instrukcje, które są bardzo użyteczne w skryptach (można je wykonywać również z ręki) Prosta instrukcja if cshsh if (warunek) polecenie if (warunek) then polecenie1 … polecenien endif if [ warunek ] then polecenie1 … polecenien fi

11 Złożona instrukcja if cshsh if (warunek1) then blok_poleceń else if (warunek2) then blok_poleceń else blok_poleceń endif if [ warunek1 ] then blok_poleceń elif [ warunek2 ] then blok_poleceń else blok_poleceń fi

12 Wyrażenia warunkowe: Wyrażenia proste: 0 – fałsz; 1 – prawda. Wyrażenia warunkowe dotyczące plików -d plik : plik jest katalogiem-e plik : plik istnieje -f plik : zwykły plik-g plik : plik należy do okr. grupy -r plik : plik daje się czytać -s plik : plik zawiera jakieś dane -w plik : plik jest dostęny do zapisu-z plik : plik jest pusty -x plik jest wykonywalny -L plik : plik jest linkiem (dowiązaniem) symbolicznym

13 Porównywanie (w przypadku csh wyrażeń numerycznych i tekstowych w przypadku sh tylko numerycznych) cshshznaczenie W1 = = W2 W2 < W2 W1 > W2 W1 <= W2 W1 >= W2 W1 != W2 W1 –eq W2 W1 –lt W2 W1 –gt W2 W1 –le W2 W1 –gt W2 W1 –ne W2 Równe Mniejsze Większe Mniejsze lub równe Większe lub równe Różne

14 Porównywanie tekstów w sh: polecenie test test W1=W2teksty są równe test W1!=W2teksty są różne test –z Wtekst ma długość zerową lub jest niezdefiniowany test –n Wtekst ma długość niezerową

15 Wyrażenia złożone cshshznaczenie !W!WPrzeczenie W1 || W2Alternatywa W1 && W2Koniunkcja (W1) op W2[ W1 ] op [W2 ] grupowanie (op oznacza operator koniunkcji lub alternatywy)

16 Instrukcja wyboru case cshsh switch zmienna case wartość1 blok_poleceń breaksw case wartość2 blok_poleceń breaksw … case default blok_poleceń endsw case zmienna in wartość1) blok_poleceń wartość2) blok_poleceń … *) blok_poleceń esac

17 Przykład skryptu csh z instrukcją case Przykład skryptu bash z instrukcją case

18 Instrukcje pętli foreach i for cshsh foreach (lista) polecenie1 … polecenien end for zmienna in lista do polecenie1 … polecenien done

19 Instrukcja pętli while cshsh while (warunek) polecenie1 … polecenien end while [ warunek ] do polecenie1 … polecenien done

20 Język awk awk {polecenia}END{polecenia} plik_albo_dane_z_STDIN awk –f plik_z_poleceniami plik_albo_dane_z_STDIN Polecenia przed słowem END dotyczą przetwarzania strumienia wejściowego linia po linii a polecenia po słowie END są wykonywane po wyczerpaniu strumienia wejściowego. Przykład polecenia z ręki (sumowanie liczb kolejno wprowadzanych z klawiatury). awk {sum=sum+$1}END{print sum}

21 Edytor strumieniowy sed sed [opcje] –e polecenia plik(i) sed [opcje] –f plik_z_poleceniami plik(i)

22 Przykład zawartości pliku z poleceniami (różniczkowanie numeryczne funkcji): { x[NR]=$1 f[NR]=$2 }END{ n=NR for (i=1;i

23 Podstawowe pojęcia języka awk: Pole: kolejny element linii strumienia danych. Pola są oddzielone odstępami jak w zwykłym tekście chyba, że zaspecyfikowano inny separator opcją –F. Pola są identyfikowane przez $1, $2,.... Symbol $0 oznacza całą linię. NF:liczba pól w bieżącej linii strumienia danych NR:liczba linii strumieni danych przeczytana dotychczas. Zmienna: cokolwiek co się pojawia i zaczyna od litery oprócz słów kluczowych. Słowo kluczowe: służy do konstrukcji poleceń awk Składnia poleceń języka awk bardzo przypomina składnię języka C.

24 Instrukcje: Podstawienie: a=wyrażenie Instrukcja warunkowa: if (warunek1) {blok_instrukcji} else if (warunek2) {blok instrukcji}... else {blok instrukcji} Instrukcja pętli określonej: for (zmienna=start;warunek zakończenia; zmienna++) {blok_instrukcji} Instrukcja pętli z warunkiem: while (warunek) {blok instrukcji}

25 Funkcje arytmetyczne w awk: cos(x) exp(x) int(x)część całkowita log(x) logarytm naturalny sin(x) sqrt(x) atan2(y,x)arctan(y/x) rand()liczba losowa z przedziału <0,1) srand(x)ustawianie ziarna liczby generatora liczb losowych

26 Funkcje łańcuchowe w awk: gsub(r,s,t)zamienia wszystkie podlańcuchy odpowiadające wyrażeniu regularnemu r łańcucha t na wyrażenie s. index(s,t)podaje położenie podłańcucha t w łańcuchu s. length(s)długość łańcucha s match(s,r)podaje położenie wyrażenia regularnego r w łańcuhu s. split(s,a,sep)dzieli łańcuch s na elementy przechowywane w tablicy a używając separatora sep. sprintf(fmt,expr)drukuje expr do łańcucha używając printf sub(r,s,t)zamienia pierwszy podlańcuch odpowiadający wyrażeniu regularnemu r łańcucha t na wyrażenie s. substr(s,p,n)wycina z łańcucha s podłańcuch o maksymalnej długości p, poczynając od pozycji n. tolower(s)zmienia duże litery na małe toupper(s)zmienia małe litery na duże

27 Literatura: Unix i skrypty: 1.J.C.Armstrong, D. Taylor Unix dla każdego, Helion, Gliwice A.Southerton, E.C. Perkins, Jr. Słownik poleceń systemu Unix i X, WNT, Warszawa 1995 sed i awk: 1. D. Dougerty, A. Robbins sed i awk, OReilly & Associates, 1997


Pobierz ppt "Proponowany program wykładu monograficznego 1.Elementy programowania w językach skryptów w systemie UNIX. 2.Posługiwanie się językiem awk i edytorem strumieniowym."

Podobne prezentacje


Reklamy Google