|
|
pl:dydaktyka:unix:lab_skrypty_adv [2016/11/21 10:17] kkluza |
pl:dydaktyka:unix:lab_skrypty_adv [2019/06/27 15:50] |
====== 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. | |
| |
**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 odgadnąć liczbę automatycznie, na podstawie tego, czy słowa z wiadomości występują w słowniku ''/tmp/slownikpl.txt''. | |
| |
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ą. | |
____________ | |
|_|_|_|_|_|_|_|_|_| | |
|_|_|_|_|_|_|_|_| | |
|_|_|_|_|_ _ | |
|_|_|_|_|_|_| | |
| |
| |
===== Dodatkowe materiały ===== | |
| |
W pliku ''/tmp/dictionary.txt'' znajduje się słownik anglojęzyczny.\\ | |
W pliku ''/tmp/slownikpl.txt'' znajduje się słownik polskojęzyczny.\\ | |
W pliku ''/tmp/krzyzowkowe.txt'' znajdują się hasła krzyżówkowe z opisem.\\ | |
| |
| |
| |
| |
| |