Postaraj się używać tylko programów wymienionych w zadaniu, i konstrukcji shella. W szczególności, nie używaj programów: grep, sed, awk, tr.

Poniższe skrypty powinny być uruchomione przy użyciu shella i narzędzi na systemie Unix (Solaris - diablo). Jeśli nie potrafisz napisać rozwiązania poprawnego na Uniksie, i udało Ci się jedynie uruchomić swoje rozwiązanie pod Linuksem - zaznacz to w raporcie. Takie rozwiązanie będzie tolerowane, choć w niektórych przypadkach może być niżej ocenione.

Przygotowanie do zajęć

Zwróć uwagę na zadania poniżej oznaczone do wykonania "na zajęciach". Postaraj się dobrze zrozumieć te zadania i przygotować się do ich sprawnego wykonania.

W szczególności, przypomnij sobie potrzebne tu skrypty napisane na poprzednich zajęciach.

Wykonanie ćwiczenia

Zad.1. (1 punkt - na zajęciach)
Napisz skrypt, który wyświetli po kolei wszystkie swoje argumenty wywołania, w cudzysłowach, po jednym w wierszu.

UWAGA: sprawdź działanie skryptu na dziwnych argumentach, np. gdy jeden jest pustym stringiem, albo zawiera spacje (jak je podać w wyołaniu skryptu?).

Zad.2. (2 punkty - na zajęciach)
Napisz skrypt w kółko poleceniami echo wyświetlający menu czterech opcji (a)-(d), i po wybraniu opcji przez użytkownika (odczytanej poleceniem read lub line):
(a) wyświetli informacje o nazwie bieżacego systemu i typie systemu operacyjnego (polecenia: uname -n, uname -o)
(b) wyświetli nazwę użytkownika i ścieżkę bieżącego katalogu (zmienna LOGNAME i polecenie pwd)
(c) wyświetli aktualną datę i czas (polecenia: date +%F, date +%T)
(d) wyjście, zakończenie skryptu

WSKAZÓWKA: zacznij od dwóch opcji: (a) tylko wyświetlenia dowolnego komunikatu, i (b) wyjścia. Po uruchomieniu takiego skryptu opracuj wywołania odpowiednich programów stosownie do wymagań zadania, i na końcu skompletuj właściwy skrypt uzupełniając go o opracowane polecenia.

Zad.3. (2 punkty - w domu)
Napisz skrypt policz3 będący dalszą modyfikacją napisanego wcześniej policz2, który oprócz argumentu opcjonalnego -a (który jeśli jest, to musi występować jako pierwszy), przyjmie dowolną liczbę dalszych argumentów (tzw. argumentów pozycyjnych), które potraktuje jako nazwy katalogów, dla każdego z których należy oddzielnie policzyć liczbę zawartych w nim plików, jak skrypt policz2. Jeśli argumentów pozycyjnych nie ma, to skrypt policzy pliki w katalogu bieżącym, jak policz2.

Raport

Raport z wykonanego zadania powinien zawierać listę punktów zadania z adnotacją "WYKONANE", i ewentualnie, w razie potrzeby, z dodatkowymi uwagami. Wszystkie opracowane skrypty proszę dołączyć jako oddzielne pliki o nazwach odpowiadających punktom zadania.
Zwróć uwagę, by skrypty nie zawierały odwołań do Twoich własnych katalogów, a operowały np. tylko na katalogu bieżącym (ub zadanym w zadaniu). W razie potrzeby utworzenia tymczasowego pliku roboczego, utwórz go w katalogu /tmp