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