1. Wstęp
Bourne Again Shell (bash) - jest to jedna z wielu
powłok występujęcych w systemach uniksowych. Wywodzi się od powłoki Bourne'a sh, która była jedną z pierwszych i najważniejszych powłok systemu Unix oraz zawiera pomysły zawarte w powłokach ksh i csh. Poza tym bash jest również językiem skryptowym.
2. Pierwszy skrypt
Tworzymy nowy plik np. hello.sh a potem nadajemy mu uprawnienia do wykonywania (uruchamiania).
chmod +x hello.sh
W tym pliku wpisujemy kod skryptu np.:
#!/bin/bash #To jest komentarz echo "Hello World"
Wykonanie skryptu:
./hello.sh
3. Polecenie echo
Polecenie echo wyświetla napis lub zmienną na ekranie.
Przykłady:
echo "Hello World"
echo "$ZMIENNA"
echo -e "Hello World \n"
Parametr -e umożliwia stosowanie znaków specjalnych np.:
\b - backspace
\n - nowa linia
\t - tabulacja pozioma
\xnn - znak ASCII o wartości szesnastkowej
\unnnn - znak Unicode o wartości szesnastkowej
unicode-table.com - tabela znaków Unicode.
4. Zmienne
Zmienne w bashu mogą być typu tekstowego lub liczbowego, ale też mogą służyć do cytowania poleceń. Myślę, że najlepiej typy zmiennych pokaże nam poniższy przykład.
W bashu istnieją także zmienne specjalne:
$0 - nazwa naszego skryptu
$# - liczba przekazanych parametrów
$$ - numer indentyfikacjny procesu skryptu (PID)
$* - lista porozdzielanych parametrów
$@ - lista parametrów z którymi został uruchomiony skrypt
$? - kod ostatniego wykonywalnego polecenia
$1,$2,$3,... - poszczególne parametry
Można też używać zmiennych środowiskowych (printenv) np. $HOME, $USER, $SHELL i wielu innych.
Zmienne tablicowe są to takie zmienne, które przechowują listę określonych wartości. W bashu stosujemy tablice jednowymiarowe. Zmienne tablicowe indeksujemy liczbami całkowitymi zaczynając od 0. Poniżej prosty przykład.
Mamy też podział zmiennych na globalne i lokalne. Zmienne globalne są dostępne w obrębie całego skryptu. We wszystkich powyższych przykładach mieliśmy do czynienia ze zmiennymi globalnymi. Zmienne lokalne działają tylko w obrębie danej funkcji. Poprzedzone są słowem kluczowym local. Poniżej przykład pokazujący różnicę między globalnymi i lokalnymi zmiennymi.
Wynik działania tego skryptu:
zmienna globalna
zmienna lokalna
zmienna globalna
5. Polecenie read - wprowadzanie danych
Polecenie read służy do wprowadzania danych przez użytkownika. Mogą to być wartości tekstowe lub liczbowe. Poniżej prezentuję skrypt operujący na wejściowych danych tekstowych oraz liczbowych.
Koniec części pierwszej, cdn.
Zmienne w bashu mogą być typu tekstowego lub liczbowego, ale też mogą służyć do cytowania poleceń. Myślę, że najlepiej typy zmiennych pokaże nam poniższy przykład.
#!/bin/bash #zmienne lancuchowe S1="Zmienna tekstowa (lancuch znakow)" echo $S1 S2='To tez jest lancuch znakow' echo $S2 #cytowanie polecen C=`uname -a` echo $C #liczba X=31 echo $X
W bashu istnieją także zmienne specjalne:
$0 - nazwa naszego skryptu
$# - liczba przekazanych parametrów
$$ - numer indentyfikacjny procesu skryptu (PID)
$* - lista porozdzielanych parametrów
$@ - lista parametrów z którymi został uruchomiony skrypt
$? - kod ostatniego wykonywalnego polecenia
$1,$2,$3,... - poszczególne parametry
Można też używać zmiennych środowiskowych (printenv) np. $HOME, $USER, $SHELL i wielu innych.
Zmienne tablicowe są to takie zmienne, które przechowują listę określonych wartości. W bashu stosujemy tablice jednowymiarowe. Zmienne tablicowe indeksujemy liczbami całkowitymi zaczynając od 0. Poniżej prosty przykład.
#!/bin/bash TAB=(Alpha Beta Gamma Delta) echo ${TAB[0]} echo ${TAB[1]} echo ${TAB[2]} echo ${TAB[3]}
Mamy też podział zmiennych na globalne i lokalne. Zmienne globalne są dostępne w obrębie całego skryptu. We wszystkich powyższych przykładach mieliśmy do czynienia ze zmiennymi globalnymi. Zmienne lokalne działają tylko w obrębie danej funkcji. Poprzedzone są słowem kluczowym local. Poniżej przykład pokazujący różnicę między globalnymi i lokalnymi zmiennymi.
#!/bin/bash ZMIENNA="zmienna globalna" function fun1 { local ZMIENNA="zmienna lokalna" echo $ZMIENNA } echo $ZMIENNA fun1 echo $ZMIENNA
Wynik działania tego skryptu:
zmienna globalna
zmienna lokalna
zmienna globalna
5. Polecenie read - wprowadzanie danych
Polecenie read służy do wprowadzania danych przez użytkownika. Mogą to być wartości tekstowe lub liczbowe. Poniżej prezentuję skrypt operujący na wejściowych danych tekstowych oraz liczbowych.
#!/bin/bash echo -en "Podaj swoje imie: " read IMIE echo "Witaj $IMIE" echo -en "Podaj liczbe X: " read X echo -en "Podaj liczbe Y: " read Y let Z=X*Y echo "$X * $Y = $Z"
Koniec części pierwszej, cdn.
Brak komentarzy:
Prześlij komentarz