wtorek, 7 grudnia 2010

BASH - Laboratorium 2

Zamieszczam kolejne zadania z naszego ukochanego laboratorium. Jest to dalszy ciąg działań na katalogach i folderach. Odnajdziemy tutaj już nieco więcej aktywnych elementów. Mam cichą nadzieję, że moje skrypty komuś pomogą.  Miłej zabawy!


Zadanie 1:
Napisz skrypt wyświetlający na ekranie następujące napisy:
- ”Usmiechnij się” (wraz z cudzyslowami)
- ”Usmiechnij się” (wraz z cudzyslowami, ale bez użycia apostrofów)
- ‘Usmiechnij się’ (wraz z apostrofami)
- ‘Usmiechnij się’ (innym sposobem)

#!/bin/bash
echo \"Usmiechnij sie\"
echo '"Usmiechnij sie"'
echo \'Usmiechnij sie\'
echo "'Usmiechnij sie'"


Zadanie 2:
Napisz skrypt, który wyświetli aktualną pełną nazwę dnia tygodnia, miesiąca oraz numer dnia roku w formacie:
Miesiac: nazwa_miesiąca,
Dzień: nazwa_dnia
Nr: nr_dnia

#warto wklepać man date
#to wam wytłumaczy skąd te dziwne symbole
#!/bin/bash
echo "Miesiac: `date +%B`" 
echo "Dzien: `date +%A`"
echo "Nr: `date +%d`"


Zadanie 3:
Napisz skrypt, który w pliku o nazwie ‘wynik’ przechowuje nazwy wszystkich katalogów i plików katalogu domowego użytkownika

#!/bin/bash
ls -la >> wynik


Zadanie 4:
Napisz ‘skryptA’ , który utworzy i uruchomi ‘skryptB’. Utworzy on i uruchomi kolejny skrypt o nazwie ‘skryptC’ , który wyświetli na ekranie tekst: I DO IT!

#!/bin/bash
touch skryptB
chmod 777 skryptB
echo "#!/bin/bash" > skryptB
echo "./skryptC" >> skryptB
touch skrpytC
chmod 777 skryptC
echo "#!/bin/bash" > skryptC
echo "echo "I DO IT"" >> skryptC 
./skryptB

#Rozwiązanie zaproponowane przez Vincero
#!/bin/bash
echo "#!/bin/bash" > skryptB
echo "echo '#!/bin/bash'> skryptC">>skryptB
echo "echo 'echo I DO IT'>>skryptC">>skryptB
echo "chmod +x skryptC" >>skryptB
echo "./skryptC" >>skryptB
chmod +x skryptB
./skryptB


Zadanie 5:
Napisz skrypt tworzący stronę w HTML (np. index.html). Następnie obejrzyj ją w przeglądarce.
<html>
<head><title>tytul strony</title></head>
<body><p align=center><b>moja strona</b></p></body>
</html>

#UWAGA blog nie wyświetla linijka w linijkę
#tak jak powinno być!
#!/bin/bash
echo "Skrypt tworzący stronę HTML"
echo "<html>" > strona.html
echo "<head><title>tytul strony</title>" >> strona.html
echo "</head>" >> strona.html
echo "<body><p align=center><b>moja strona</b></p>" >> strona.html
echo "</body>" >> strona.html
echo "</html>" >> strona.html


Zadanie 6:
Napisz skrypt, który wczytuje imię i nazwisko użytkownika z klawiatury

#!/bin/bash
echo "Skrypt wczytujący imię i nazwisko"
echo "Wpisz swoje imie:"
read imie
echo "wpisz swoje nazwisko:"
read nazwisko
echo "Twoje imie to: $imie"
echo "Twoje nazwisko to: $nazwisko"


#Można to też rozwiązać w inny sposób.
#Sposób wymyślony przez kolegę Krzysztofa :D
#!/bin/bash
echo "Podaj imie i nazwisko"
read imie nazwisko
echo $imie $nazwisko


Zadanie 7:
Utwórz następujący alias:
- wyświetlający zawartość katalogu wraz z plikami ukrytymi
- pozwalający na usuwanie katalogów wraz z zawartymi w nich plikami
- usuń zdefiniowane aliasy

#UWAGA!
#Na niektórych uczelnianych kompach zmiana
#aliasów nie zadziałała
#!/bin/bash
alias katalog=`ls -la`
alias usun=`rm /katalog/*`
alias usunalias=`unalias=`*``


Zadanie 8:
Napisz taki skrypt z użyciem zmiennych programowych (=samodzielnie zdefiniowanych przez użytkownika), który pozwala na wyświetlenie aktualnej daty oraz pełną nazwę ścieżki. Na ekranie ma się pojawić komunikat:
Znajduję się w katalogu nazwa o godzinie czas.
Nazwa - nazwa katalogu
Czas – bieżąca godzina

#!/bin/bash
#Nasze położenie
A=`pwd`
#Nasz czas
B=`date +%r`
echo "Znajduje sie w katalogu $A o godzinie $B"

2 komentarzy:

  1. Czy na blogspocie wgrywasz własny szablon? Chodzi mi głównie o możliwość edycji css. Bo jeżeli tak, to zastanów się nad zmianą ustawień dot. znacznika 'code' (bo zakładam, że tego używasz do prezentowania kodu) - jakaś ramka, czy cuś.

    OdpowiedzUsuń na zawsze