Przydatne funkcje: who, finger, grep, sleep, while, wc
Ćwiczenie 1. Napisz skrypt, który co kilka sekund sprawdza czy użytkownik o jakimś loginie zalogował się w systemie 5-krotnie. Jeżeli nie to skrypt zasypia na kilka sekund i sprawdza później. Jak użytkownik się zalogował 5-krotnie to, skrypt się kończy.
Przydatne funkcje: tar, gzip, find, rm, rmdir
Ćwiczenie 2. Napisz skrypt, który z poniższego pliku ekg2-current.tar.gz usunie wszystkie pliki z rozszerzeniem txt. Być może trzeba będzie to zadanie wykonać w kilku krokach: rozpakowanie i rozarchiwizowanie pliku, znalezienie plików i usunięcie ich, zaarchiwzowanie katalogu i kompresja.
Przydatne funkcje: find, ${} z dodaktku do wykładu 3, grep
Ćwiczenie 3. Napisz skrypt, który policzy ile klas (JAVA) masz zdefiniowanych w swoim dysku Z. Aby to zweryfikować, trzeba odnaleźć wszystkie pliki z rozszerzeniem java (polecenie find), następnie uzyskać nazwę klasy z nazwy pliku (wykorzystaj informacje zawarte w dodatku do wykładu 3), a następnie sprawdź czy w pliku który analizujesz jest łańcuch public i nazwa klasy. Zakładamy, ze są on pisane w jednej linii, ale może być wiele spacji między nimi, ale przynajmniej jedna z nich będzie, no i przynajmniej jedna będzie z nazwą klasy, albo będzie '{' (grep). Zakładamy, że w naszych plikach nie ma komentarzy. W rozwiązaniu tego zadania mogą być pomocne dwa skrypty, ale można zrobić też jeden.
Przydatne funkcje: du, test -d -x, if, >
Ćwiczenie 4. Napisz skrypt, który sprawdzi, czy podany argument jest nazwą katalogu i jak tak to go wyświetli wraz ze wszystkimi podkatalogami i policzy rozmiar jego rozmiar w bajtach. Dodatkowo, nazwy wszystkich plików lub katalogów z ustawionym atrybutem wykonywania dla właściciela powinny zostać zapisane do pliku o nazwie, która zostanie podana jako drugi argument. Jeżeli drugiego argumentu nie ma to skrypt ma nic nie robić.
Przydatne funkcje: expr, while, read, >, <, test, set
Ćwiczenie 5. Mamy plik o zawartości jak poniżej:
100 300
20 10
11 0
55
11 11a11
333 3
Każda linia zawsze składa się z dwóch kolumn. W każdej kolumnie mamy dwa teksty oddzielone spacją. Napisz skrypt, który pobierze nazwę takiego pliku i wykona operacje matematyczne (+-*/) na kolejnych parach liczb odczytanych z naszego pliku. Wyniki mają zostać zapisane do pliku, którego nazwa jest przekazana jako drugi parametr i dodatkowo wyświetlone na ekran. Trzeba wyświetlić informacje o błędach - dlaczego zadanej linii nie możemy przetworzyć, o ile taka sytuacja wystąpiła.
Ćwiczenie 6. Mamy plik jak poniżej:
1 2 3 4 5
4 3 2 3 4 5 4 3
2 2 2 2 22 3 34 4 4 5 5 5
d 3 43 54 5 3
Napisz skrypt, który pobierze nazwę takiego pliku jako pierwszy argument i wyznaczy sumę (opcja -s) tych liczb i/lub iloczyn (opcja -i) tych liczb.
Przydatne funkcje: for, while, printf
Ćwiczenie 7. Napisz skrypt, który wyświetli tabelkę jak poniżej:
1 2 3 4 5 6 7 8 9 10 11 12
2 4 6 8 10 12 14 16 18 20 22 24
3 6 9 12 15 18 21 24 27 30 33 36
4 8 12 16 20 24 28 32 36 40 44 48
5 10 15 20 25 30 35 40 45 50 55 60
6 12 18 24 30 36 42 48 54 60 66 72
7 14 21 28 35 42 49 56 63 70 77 84
8 16 24 32 40 48 56 64 72 80 88 96
9 18 27 36 45 54 63 72 81 90 99 108
10 20 30 40 50 60 70 80 90 100 110 120
11 22 33 44 55 66 77 88 99 110 121 132
12 24 36 48 60 72 84 96 108 120 132 144