Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:sitw:2016:wstep [2017/10/16 12:47] bstachura [Tworzenie skryptów bash] |
pl:dydaktyka:sitw:2016:wstep [2019/06/27 15:50] (aktualna) |
</code> | </code> |
| |
| Zmienna specjalna **$?** |
| |
| <code bash> |
| #!/bin/bash |
| vdir /home/test |
| echo $? |
| </code> |
| |
| W zmiennej tej zapisywana jest informacja czy program ukończył działanie poprawnie.\\ |
| |
| Instrukcja warunkowa **if**:\\ |
| <code bash> |
| if wartość |
| then |
| zrób coś |
| else |
| zrób coś innego |
| fi |
| </code> |
| |
| Instrukcja **case**:\\ |
| <code bash> |
| #!/bin/bash |
| wartosc=1 |
| case "$wartosc" in |
| 1) |
| echo Liczba ma wartosc 1 |
| ;; |
| 2) |
| echo Liczba ma wartosc 2 |
| ;; |
| Esac |
| </code> |
| Pętla **for**:\\ |
| <code bash> |
| #!/bin/bash |
| for warzywa in marchew seler kalafior |
| do |
| echo $warzywa |
| done |
| </code> |
| Pętla **while**:\\ |
| <code bash> |
| #!/bin/bash |
| i=0 |
| while [ $i -lt 2 ] |
| do |
| echo $i |
| i=`expr $i + 1` |
| done |
| </code> |
| Stosowanie **break**:\\ |
| <code bash>#!/bin/bash |
| for warzywo in marchew seler kalafior |
| do |
| echo $owoc |
| if [ "$warzywo" = "kalafior" ] |
| then |
| break |
| fi |
| done |
| </code> |
| |
| Stosowanie **continue**:\\ |
| <code bash> |
| #!/bin/bash |
| for warzywo in marchew seler kalafior |
| do |
| echo $owoc |
| if [ "$warzywo" = "marchew" ] |
| then |
| continue |
| fi |
| echo nastepna linia |
| done |
| </code> |
| |
| Argumenty przekazywane do skryptu są w następujący sposób:\\ |
| <code bash> |
| [xyz@localhost ~]$ ./skrypt super |
| </code> |
| |
| Do argumentów wysłanych po uruchomieniu skryptu odwołujemy się za pomocą zmiennych **$1, $2.....$n**. |
| |
| <code bash> |
| #!/bin/bash |
| echo "Dzisiaj pogoda była $1" |
| </code> |
| ==== Zadania ==== |
| |
| * Przejdź do katalogu /tmp |
| * Stwórz plik /tmp/lab1/lab1.sh |
| * Zmień mu prawa dostępu na rwxrwxrwx. |
| * Za pomocą echo i przesunięcia bitowego zapisz w nim ciąg znaków: "pierwsza linia" a następnie w drugiej linii: "druga linia" |
| * Skopuj go do lokalizacji /tmp/lab1/lab1a.sh |
| * Odbierz wszelkie prawa grupie do pliku /tmp/lab1/lab1a.sh |
| * Stwórz link symboliczny do pliku /tmp/lab1/lab1.sh w lokalizacji /tmp/labek |
| * Napisz skrypt rysujący choinkę w konsoli, |
| * Napisz skrypt zalogowanych.sh, który zwróci liczbę aktualnie zalogowanych użytkowników i wypisze twój login, |
| * Napisz skrypt szukaj-tutaj.sh, który będzie wyszukiwał pliki o nazwie podanej w parametrze skryptu. Wyszukiwanie ma się odbywać od katalogu w którym aktualnie pracuje użytkownik, |
| * Napisz skrypt serwer.sh, który przyjmuje tylko trzy parametry: „start” (wyświetla napis: "Usługa jest uruchamiana"), „stop” (wyświetla napis: "Usługa jest zatrzymywana") i „restart” (wyświetla napis: "Usługa jest restartowana"), |
| * Napisz skrypt pliki-wykonywalne.sh, który wyświetli nazwy wszystkich plików z katalogu /bin/, które użytkownik ma prawo uruchamiać, |
| * Zainstaluj git, |
| * Usuń git. |