tekst_suzie_6bashprogrammc.pdf
(
3036 KB
)
Pobierz
124532931 UNPDF
Podstawy open source – system SUSE Linux cz. II
2-87
2.5 Podstawy programowania w bash'u
Powłoka Linuksa jest programowalna, można używać edytora vi do pisania
programów.
Zwykle skrypt powłoki jest zapisany w pliku tekstowym i zaczyna się
następującym wierszem (zwanym shee-bang line):
#! /bin/bash
Po napisaniu, a przed próbą bezpośredniego uruchomienia skryptu konieczne
jest nadanie mu atrybutu wykonywalności (plik wykonywalny) poleceniem:
chmod u+x skrypt_bash
Wewnątrz skryptu można stosować wszystkie polecenia omawiane wcześniej
w podręczniku. Polecenie echo możemy stosować do wyświetlania tekstu na
ekranie lub żądania zawartości zmiennej.
Przykład:
#!/bin/bash
echo 'The content of variable $PATH is:' $PATH
Zwykle znak
#
jest stosowany do oznaczania tekstu komentarza.
Komentarze nie są interpretowane i wykonywane.
Jedynym wyjątkiem od tj zasady jest wiersz shee-bang.
Po wykonaniu skryptu, możemy przykładowo otrzymać wyjście w postaci:
geeko@da51:~> ./bash_script
The content of variable $PATH is: /home/geeko/bin:/usr/local/bin:/usr/bin:/usr/X
11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin:/usr/
lib/mit/bin:/usr/lib/mit/sbin
geeko@da51:~>
2008 Novell Inc.
Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać
i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa
Novell Inc.
Podstawy open source – system SUSE Linux cz. II
2-88
2.5.1 Zmienne w skryptach bash
W ostatnim przykładzie używaliśmy zmiennej $PATH. Można definiować swoje
własne zmienne wyłącznie do użytku wewnątrz danego skryptu.
Składnia: nazwa_zmiennej=wartość
Obowiązuje zasada używania małych liter dla
nazw zmiennych wewnątrz kodu programu.
Tylko stałe (które nie zmieniają wartości podczas
wykonywania programu) są pisane dużymi
literami.
#!/bin/bash
myvar=13
echo 'The content of variable $myvar is:' $myvar
By pobrać zawartość zmiennej (np. poleceniem echo) trzeba dodać znak
$ przed nazwą zmiennej.
Zmienne mogą przechowywać liczby, znaki, ciągi tekstowe.
#!/bin/bash
a=2
b=x
c=Geeko
d="Geeko and Suzie"
echo '$a is a number:' $a
echo '$b is a character:' $b
echo '$c is a string:' $c
echo '$d is a string with whitespaces:' $d
Wynik wykonania skryptu:
$a is a number: 2
$b is a character: x
$c is a string: Geeko
$d is a string with whitespaces: Geeko and Suzie
2008 Novell Inc.
Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać
i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa
Novell Inc.
Podstawy open source – system SUSE Linux cz. II
2-89
Ćwiczenie. Typy zmiennych
Liczby mogą być dodawane, ciągi tekstowe nie. Dla wielu operacji jest to
ważne, więc należy odpowiednio używać tych typów wartości zmiennych.
Zapisz poniżej po cztery typowe operacje dla liczb i ciągów znaków.
operacje dla liczb:
operacje dla ciągów znaków:
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________
2.5.2 Obliczenia numeryczne
Zmienne często są łączone z operatorami matematycznymi, służą do różnych
obliczeń. Zmienne liczbowe mogą być:
dodawane (operator „+”)
odejmowane (operator „-”)
mnożone (operator „*”)
dzielone (operator „/”)
dzielone modulo (operator „%”)
2008 Novell Inc.
Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać
i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa
Novell Inc.
Podstawy open source – system SUSE Linux cz. II
2-90
Obliczenia na liczbach całkowitych
W poniższym przykładzie zapiszemy sumę zmiennych $a i $b do nowej
zmiennej:
#!/bin/bash
a=3
b=2
c=$a+$b
echo '$a+$b='$c
Wynikiem może być przykładowo:
$a+$b=3+2
Jak widać, zmienna C zawiera łańcuch „3 + 2,” a nie sumę „5”! By uzyskać
sumę mamy następujące możliwości:
Określić, że zmienna $c może przechowywać wyłącznie liczby (dane
numeryczne).
By to zrobić, należy użyć do jej deklaracji - funkcji
declare
z opcja
-i :
#!/bin/bash
a=3
b=2
declare i c=$a+$b
echo '$a+$b='$c
Oznaczyć działanie (formułę) jako wyrażenie, które powinno być
wykonane:
By wymusić obliczenie w wierszu poleceń, należy użyć polecenia
expr
:
geeko@da51:~ > expr 3 + 2
5
geeko@da51:~ >
Uwaga.
W odróżnieniu od metody z funkcją declare, przy funkcji expr
muszą być spacje oddzielające operatory od argumentów.
Jeżeli użyjemy funkcji expr w skrypcie powłoki, musimy zamknąć całe
wyrażenie w cudzysłowie pojedynczym („' ”) lub poprzedzić znakiem $.
Znaki specjalnego przeznaczenia muszą być maskowane ukośnikiem „\”.
#!/bin/bash
a=3
b=2
c=$(expr $a + $b)
2008 Novell Inc.
Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać
i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa
Novell Inc.
Podstawy open source – system SUSE Linux cz. II
2-91
echo '$a+$b='$c
Wyrażenie wewnątrz $(...) jest zastępowane wynikiem działania.
W rezultacie otrzymamy, przykładowo:
$a+$b=5
Spróbujmy przeanalizować przykład z dzieleniem zmiennych.
#!/bin/bash
a=3
b=2
c=$(expr $a / $b)
echo '$a/$b='$c
Wynik jest może być niezgodny z oczekiwanym:
$a/$b=1
Wynik dzielenia jest liczbą całkowitą – bez miejsc po przecinku. Resztę dzielenia
możemy otrzymać jeżeli użyjemy operatora modulo:
#!/bin/bash
a=3
b=2
c=$(expr $a / $b)
d=$(expr $a % $b)
echo '$a/$b='$c Rest:$d
Zamiast funkcji expr, można użyć składni $((...))
Przykład:
#!/bin/bash
a=3
b=2
c=$(($a + $b))
echo '$a+$b='$c
2008 Novell Inc.
Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać
i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa
Novell Inc.
Plik z chomika:
mileymandy
Inne pliki z tego folderu:
tekst_suzie_6bashprogrammc.pdf
(3036 KB)
BASH - Programowanie w powloce(2).pdf
(343 KB)
bash (1).pdf
(93 KB)
Skrypty_Linuks.pdf
(248 KB)
Sop_05_lab.pdf
(136 KB)
Inne foldery tego chomika:
Pliki dostępne do 01.06.2025
Pliki dostępne do 19.01.2025
●● BIZNES i PRACA
Absolwentka
Ameryka. Historia USA
Zgłoś jeśli
naruszono regulamin