[[
✎ pl:dydaktyka:unix:lab_skrypty_adv
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Pisanie skryptów Bash ====== ===== Ćwiczenie 1. Słownik krzyżówkowy ===== Słownik do tego ćwiczenia znajduje się w pliku: ''/tmp/dictionary.txt''. - (1 pkt.) Proszę napisać skrypt, który dla słowa podanego jako argument, w którym dowolne znaki wstawiamy jako “.”, wyświetli znalezione dopasowania ze słownika.\\ np. dla: .''/skrypt b.eb..'' znalezionym dopasowaniem mogłoby być ''bieber''. - (1 pkt.) W przypadku, gdy nie podamy słowa, skrypt powinien wypisać komunikat “Nie podano słowa”. - (1 pkt.) W przypadku, gdy nie podamy słowa, skrypt powinien ponadto poprosić użytkownika o wprowadzenie słowa i pobrać od niego to słowo. - (1 pkt.) Skrypt powinien sprawdzać, czy pobrane słowo nie zawiera niedozwolonych znaków (innych niż litery i kropki) i wyświetlić komunikat "Podano nieprawidłowe znaki". **Bonus**: (1 pkt.) Odgadnij hasło i sprawdź je przy użyciu ''/tmp/checkpassword''. Listę haseł do sprawdzenia można wysłać np. przy użyciu: \\ ''cat /tmp/dictionary.txt | /tmp/checkpassword''. \\ Podpowiedź do hasła: //Kończy sie na "us", ma 7 liter, nie zaczyna się na literę z pierwszej połowy alfabetu, a nazwę kojarzy każdy, kto był w Hong Kongu.// ===== Ćwiczenie 2. Deszyfrator szyfru przestawieniowego ===== Słownik do tego ćwiczenia znajduje się w pliku: ''/tmp/slownikpl.txt''.\\ - (1 pkt.) Napisz skrypt, który odszyfruje wiadomość zaszyfrowaną ROT13: '' wrqan m plse cvah gb fvrqrz'' - (1 pkt.) Napisz skrypt, który odszyfruje poniższą wiadomość zaszyfrowaną analogicznym szyfrem przestawieniowym, ale z inną liczbą przesunięcia. Skrypt powinien wyświetlić rezultaty wszystkich możliwych przesunięć. Nie należy przejmować się polskimi znakami (one nie są zaszyfrowane). - (1 pkt.) Skrypt powinien sprawdzić, czy słowa z rozszyfrowanej wiadomości występują w słowniku ''/tmp/slownikpl.txt'' \\ i dla każdej potencjalnego rezultatu wypisać: ''"Znaleziono w słowniku X / Y"'', \\ gdzie X to liczba słów z wiadomości występujących w słowniku, a Y liczba wszystkich słów rozszyfrowanej wiadomości. - (1 pkt.) Skrypt powinien odgadnąć klucz (liczbę przesunięcia) automatycznie, przyjmując że np. wiadomość rozszyfrowano, jeśli dopasowano ponad 30% słów ze słownikiem. unjwbxej heyjwd hdkwd unsz yfpnj xfrj f ptqjosj yt uwejxzsnęhnj qnyjw b yjo bnfitrtśhn **Bonus**: (1 pkt.) Odgadnij pin -- sprawdź jego poprawność programem ''/tmp/checkpin'' np. ''echo 12345 | /tmp/checkpin''. ===== Ćwiczenie 3. Kreator krzyżówek ===== Słownik do tego ćwiczenia znajduje się w pliku: ''/tmp/krzyzowkowe.txt''.\\ * (1 pkt.) Proszę napisać skrypt, który wylosuje dowolne hasło ze słownika. * (1 pkt.) Skrypt powinien losować hasło tak długo, aż znajdzie hasło nie krótsze niż 8 liter, przy czym losowanie hasła powinno odbywać się w osobnej funkcji. * (1 pkt.) Dla ustalonego hasła skrypt następnie losuje hasła dodatkowe zaczynające się od każdej z liter hasła głównego.\\ Przykład: dla hasła głównego "kawa", program może wylosować hasła dodatkowe: |k|orniszon |a|rtefakt |w|oda |a|zymut * (1 pkt.) Skrypt po podaniu opcji ''-‐print'' lub ''-p'' wypisuje pustą krzyżówkę (ascii art jak poniżej) oraz opisy do haseł, a ''-‐solved'' lub ''-s'' wypisuje krzyżówkę wypełnioną. ____________ |_|_|_|_|_|_|_|_|_| |_|_|_|_|_|_|_|_| |_|_|_|_|_ _ |_|_|_|_|_|_| ===== Ćwiczenie 4. Lista mailingowa ===== Napisz skrypt ''grupamailingowa'' rozsyłający e-maile do wszystkich zapisanych członków grupy (proszę przetestować działanie skryptu na serwerze student). Skrypt powinien obsługiwać następujące opcje: - (1 pkt.) Bez opcji skrypt pyta o temat i treść maila, a następnie używając polecenia ''mail'' rozsyła e-maile do wszystkich odbiorców podanych w pliku ''listaodbiorcow''. - (1 pkt.) Dla opcji ''-a'' / ''-‐add'' -- dodaje podany jako argument adres e-mail do pliku ''listaodbiorcow''. - (1 pkt.) Dla opcji ''-r'' / ''-‐remove'' -- usuwa podany jako argument adres e-mail z pliku ''listaodbiorcow''. - (1 pkt.) W przypadku opcji ''-a'' / ''-‐add'' sprawdza czy podany adres e-mail jest prawidłowo skonstruowanym adresem e-mail (wyrażenie regularne) oraz sprawdza, czy podany adres nie znajduje się już na liście.
pl/dydaktyka/unix/lab_skrypty_adv.1479753779.txt.gz
· ostatnio zmienione: 2019/06/27 15:55 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry