================= === ZADANIE 1 === ================= Napisać skrypt obliczający sumę, różnicę i iloczyn dwóch wczytanych liczb całkowitych. niech drugim parametrem będzie działanie. ================= === ZADANIE 2 === ================= Napisać skrypt pytający się czy jest wieczór. Dla odpowiedzi 'tak' powinien wypisać 'Dobry wieczor', dla odpowiedzi 'nie' - 'Dzien dobry', dla pozostałych odpowiedzi 'Nie rozpoznana odpowiedz: ' i przytoczyć treść odpowiedzi. (Użyj instrukcji warunkowej if-elif.) ================= === ZADANIE 3 === ================= Napisać skrypt sprawdzający, czy u ytkownik, którego login został podany jako parametr skryptu zalogował się. (Użyj pętli until.) ================= === ZADANIE 4 === ================= Zmienić nazwy plików lub katalogów (odpowiednio przełączniki -d -f) pisane dużymi literami na nazwy pisane małymi literami. ================= === ZADANIE 5 === ================= Napisać skrypt, który będzie działał jak funkcja 'Znajdź i Zamień' nazwę pliku w dowolnym katalogu i/lub podkatalogu. ================= === ZADANIE 6 === ================= Napisać skrypt obliczający silnię z liczby naturalnej podanej jako parametr skryptu. ================= === ZADANIE 7 === ================= Napisz skrypt pakujący katalog do pliku, który w nazwie ma aktualną datę. Nazwa katalogu powinna być przekazana jako parametr skryptu. Skrypt powinien obsługiwać przypadki gdy nie podano parametru i gdy podany parametr nie jest katalogiem. [tar] ================= === ZADANIE 8 === ================= Napisz skrypt rysujący kwadrat z gwiazdek o boku podanym jako parametr. ================= === ZADANIE 9 === ================= Skrypt tworzący nazwę projektu, zmiennej, itp. wg określonego formatu. Jako pierwszy parametr podajemy nazwe formatu docelowego. Przykłady użycia: ./chcase joined my new project # Zwraca: mynewproject ./chcase underline my new var # Zwraca: my_new_project ./chcase uppercase my new const # Zwraca: MY_NEW_CONST ./chcase dashes my new resource # Zwraca: my-new-resources Jeśli format nie zostanie podany wyświetl dostępne formaty i zakończ z błędem. Jeśli użytkownik nie poda argumentów, wyświetl krótką instrukcję i zakończ z błędem. ================= === ZADANIE 10 === ================= Skrypt tworzacy kopie zapasowe wskazanych plików i katalogów. Jako pierwszy parametr należy podać miejsce utworzenia kopii. Jako kolejne podajemy nazwy kopiowanych plików i katalogów. Do nazw kopiowanych zasobów dodana powinna być też data i czas utworzenia kopii. Przyklad użycia: ./bup /tmp/backup asia/ basia/ casia.txt Spowoduje powstanie plików: /tmp/backup/10-05-12_10:03_asia/ /tmp/backup/10-05-12_10:03_asia/cokolwiek_było_w_katalogu /tmp/backup/10-05-12_10:03_basia/ /tmp/backup/10-05-12_10:03_basia/cokolwiek_było_w_katalogu /tmp/backup/10-05-12_10:03_casia.txt Jeśli wskazany katalog docelowy nie istnieje to należy go utworzyć. Jeśli wskazany katalog docelowy istnieje ale nie jest katlogiem, należy zakończyć działanie z błędem. Jeśli plik do kopiowania nie istnieje, należy go pominąć i na samym końcu działania programu wypisać ostrzeżenie, że plik nie został odnaleziony. ================= === ZADANIE 11 === ================= Skrypt który rozmawia z użytkownikiem. Użytkownik zadaje pytanie, skrypt losuje odpowiedź z pliku. Kiedy użytkownik napiszę kluczową frazę (np. that's enough) skrypt kończy rozmowę. ================= === ZADANIE 12 === ================= Skrypt który czeka, aż zawartość określonego pliku się zmieni. Jeśli zawartość się zmieniała, to skrypt wykonuje wskazaną komendę. Użytkownik może (ale nie musi) określić jak często skrypt ma sprawdzać kopie lokalną. Jeśli nie można otworzyć pliku powinien wyświetlić się błąd i zakończyć działanie skryptu. ================= === ZADANIE 13 === ================= Skrypt-predykat który sprawdza porę dnia. Możliwe pory dnia: early, late, day, night, morning, lunchtime, evening Przykłady użycia: if ./its late then ... fi while ./its lunchtime do ... done Jeśli użytkownik poda porę dnia nieznaną skryptowi należy wyświetlić komunikat o błędzie. ================= === ZADANIE 14 === ================= Skrypt który dodaje dyrektywę interpretera dla skryptów znalezionych we wskazanych katalogach. Do skryptów o rozszerzeniu .sh dodawane jest #!/bin/bash, do skryptow o rozszerzeniu .py '#!/usr/bin/env python'. Inne rodzaje skryptów są pomijane. Przykład użycia: ./addshebang repository/scripts "/tmp/work in progress" Jeśli plik już posiada dyrektywę interpretera, wypisz wiadomość do użytkownika i zignoruj plik.