Skrypty shellowe #!/bin/bash echo Witaj # krzyzyk oznacza komentarz #!/bin/bash echo Czesc echo twój katalog domowy to echo $HOME #!/bin/bash echo Teraz wstawimy zmienna x=2 echo Nasza zmienna ma wartosc $x #!/bin/bash echo "Podaj swoje imie:" readimie echo "Masz na imię $imie, lepiej nie można było :-)" #!/bin/bash x=2 y=4 z=$(($x+$y)) echo "Twoja pierwsza liczba to: $x" echo "Twoja druga liczba to: $y" tekst="zmienna tekstowa" echo "Suma tych liczb wynosi $z" echo "Natomiast zmienna tekstowa: $tekst" #!/bin/bash # program na warunek #warunek=2 echo -n "Podaj liczbe wieksze od zera: " read liczba if [ $liczba -gt 0 ] then echo "Podales dobra liczbe. $liczba jest wieksza od zera" fi # -n znak nie jest wysylany do nowej linii # -e wlacza interpretacje znakow specjalnych # # # # # # # # \b \a \c \f \r \t \v \\ backspace sygnal pomija znak konczacy nowej linii escape znak nowej linii tabulacja pozioma tabulacja pionowa backslash # # # # # # $ wskazuje na nazwe zmiennej ` ` odwrotny apostrof - uozliwia zacytowanie polecenia ' ' wszystko pomiedzy jest traktowane jako tekst - nie ma interpretacji polecen #!/bin/bash # program na warunek echo -n "Podaj liczbe z przedziauu (0,10):" read liczba if [ $liczba -gt 0 ] && [ $liczba -lt 10 ] then echo e "\tPodales dobra liczbe. $liczba nalezy do przedziau (0,10)" else echo -e "\tOszukales. $liczba nie nalezy do tego przedzialu" fi # # # # # # # # # Operatory = != -eq -ge -le -ne -gt -lt porownania rowne (lancuchy znakow) nierowne (lancuchy znakow) rowne (liczby) wieksze lub rowne (liczby) mniejsze lub rowne (liczby) rowne (liczby) wieksze niz (liczby) mniejsze niz (liczby) #!/bin/bash # instrukcja case echo -n "Podaj cyfre dla dnia tygodnia: " read cyfra case "$cyfra" "1") echo "2") echo "3") echo in -e "\tPoniedzialek" ;; -e "\tWtorek" ;; -e "\tSroda" ;; "4") echo -e "\tCzwartek" ;; "5") echo -e "\tPiatek" ;; "6") echo -e "\tSobota" ;; "7") echo -e "\tNiedziela" ;; *) echo "To nie to" esac #!/bin/bash # skrypcik na petle for # ------------- skladnia -------# # for zmienna in zakres # do # instrukcje # done # # ------------------------------for i in 1 2 3 4 5 6 7 8 do echo "Liczba $i" done #!/bin/bash # skrypt na petle select # ---------- skladnia ------------# select zmienna in zakres # do # instrukcje # done # --------------------------------select liczba in A B C D do echo "To koniec pokazu" break done #!/bin/bash # przyklad select z case echo "Wybierz cos:" select x in A B C D do case "$x" in "A") echo "Wybrales A" ;; "B") echo "Wybrales B" ;; "C") echo "Wybrales C" ;; "D") echo "Wybrales D" ;; *) echo "Nic nie wybrales" esac break done #!/bin/bash # petla while # ------------- skladnia ------# while warunek # do # instrukcje # done # -----------------------------liczba=1 while [ $liczba -le 10 ] do echo "Liczba ma wartosc: $liczba" liczba=$[liczba+1] done #!/bin/bash # petla until # ------------- skladnia ------# until warunek # do # instrukcje # done # -----------------------------liczba=1 until [ $liczba -ge 10 ] do echo -e "Liczba ma wartosc: $liczba \a" liczba=$[liczba+1] done Zadanie 1. Napisać skrypt, który wyświetlać będzie aktualną datę. #!/bin/bash data=`date` echo Teraz jest $data Zadanie 2. Napisać skrypt, który do momentu zalogowania się użytkownika login co sekundę będzie wyświetlał znak ".". #!/bin/bash until who | grep login > /dev/null do sleep 1 echo "." done echo "*** login zalogowany ***" Zadanie 3. Napisać skrypt, który zobrazuje działania dzielenia i mnożenia. #!/bin/bash # skladnia # $((wyrazenie)) lub $[wyrazenie] echo $((8/2)) wynik=$[4*8/4] echo $wynik Zadanie 4. Napisać skrypt, który zmieni rozszerzenia plików z *.jp na *.jpg. #!/bin/bash for plik in *.jp do mv $plik ${plik%.*}.jpg done Zadanie 5. Napisac skrypt obliczajacy sumę, różnicę i iloczyn dwóch wczytanych liczb całkowitych. (Użyj polecenia read.) Zadanie 6. Napisac skrypt sprawdzajacy, czy w katalogu głównym użytkownika istnieje plik .bashrc. (Użyj instrukcji warunkowej if.) #!/bin/bash if [ -e ~/.bashrc ] #powyzsze jest rownowazne: if test -e ~/.bashrc then echo "Masz plik .bashrc" else echo "Nie masz pliku .bashrc" fi # # # # # # # # # # Warunki dla pliku: -d plik, plik jest katalogiem -e plik, plik istnieje -f plik, plik jest plikiem regularnym -g plik, plik ma przypisany set-gropu-id -r plik, plik daje sie odczytac -s plik, plik ma niezerowy rozmiar -u plik, plik ma przypisany set-user-id -w plik, plik mo na edytowac (mo na pisac)) -x plik, plik wykonywalny