Laboratorium 9 – Pętle 2
Transkrypt
Laboratorium 9 – Pętle 2
Laboratorium 9 – Pętle 2 Pętla będzie wykonywana dopóki warunek jest prawdą. while [ WARUNEK ]; do INSTRUKCJE done Pętla odwrotna do WHILE, wykonywana dopóki warunek jest fałszem. until [ WARUNEK ]; do INSTRUKCJE done Pętla wykonywana na elementach kolekcji. for ZMIENNA in KOLEKCJA ; do INSTRUKCJE done Klasyczna pętla for. for (( ODKĄD ; DOKĄD ; SKOK)) ; do INSTRUKCJE; done 1. Opracuj skrypt, który co minutę będzie odświeżał listę terminali (tty i pts) znajdujących się aktualnie w użyciu. 2. Napisz skrypt nadający wszystkim prawa wykonania do plików podanych jako argumenty wywołania. 3. Zsumuj liczby wpisane z klawiatury. Podanie 0 kończy wczytywanie liczb i wyświetla ich sumę i średnią. bash only does integers; you must delegate to a tool such as bc 4. Oblicz silnię z liczby podanej jako parametr wywołania skryptu. 5. Napisz skrypt wyświetlający statystyki dla katalogu podanego jako parametr wywołania. Wyświetlane informacje są na temat: a. Liczby podkatalogów b. Liczby plików c. Liczby skryptów (załóż, że chodzi o pliki z ustawionym atrybutem wykonania i rozszerzeniem „.sh”. 6. Napisz skrypt zapisujący plik, o zaprezentowanej poniżej strukturze, po zwiększeniu o 10 wartości liczbowej występującej po każdym z imion. Do przepisania treści pliku © Kamil Żyła, Grzegorz Kozieł, Instytut Informatyki, Politechnika Lubelska 1 użyj pliku tymczasowego. Sprawdź, czy plik o nazwie pliku tymczasowego istnieje, jeśli tak poszukaj nowej nazwy. OFS – SEPARATOR PÓL WYJŚCIOWYCH (DEFAULT=SPACJA) plik: 1;Adam;2 2;Roman;4 3;Henryk;3 #!/bin/bash z=1 ... while read line do echo $line zm=`echo $line | awk -F ';' '{print $3}'` ... echo $line | awk -F ';' '{OFS=";"; $3='$zm'; print }' >> temp$z done < $1 ... mv temp$z $1 7. Napisz program, który będzie sprawdzał co 30 sekund, czy działa połączenie z Internetem. a. Jeżeli tak, to w pliku o nazwie „w_porzadku” umieść linię zawierającą czas w formacie „RRRR_MM_DD_HH_mm” b. Jeżeli nie, to w pliku o nazwie „Awaria” umieść identyczną linię oraz informację o adresie IP komputera, na którym pracujesz oraz informację, czy jest połączenie z komputerem w sieci lokalnej. WSKAZÓWKI Do odliczania czasu użyj polecenia sleep. Jego postać to: sleep N[jednostka] N oznacza liczbę określającą czas. Jednostka określa jednostkę czasu i może przyjmować jedną z wartości spośród: s – sekundy m – minuty h – godziny d – dni sleep 3h – będzie oznaczało uśpienie działania skryptu na 3 godziny Do sprawdzania czy jest połączenie użyj polecenia ping. Pinguj jeden z popularnych serwisów internetowych. Przetwórz wyniki zwrócone przez polecenie ping by stwierdzić czy połączenie działa. © Kamil Żyła, Grzegorz Kozieł, Instytut Informatyki, Politechnika Lubelska 2