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.
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.
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 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