1. Teoria
1.1. Tworzenie zmiennej
ZMIENNA="jakas wartosc"
1.2. Wartość zmiennej
W celu uzyskania wartości zmiennej poprzedzamy jej nazwę znakiem dolara, np.:
echo $ZMIENNA
1.3. Zmienne specjalne
| Zmienna | Opis |
|---|---|
|
Zwraca kod zakończenia programu. |
|
Liczba argumentów, z którymi uruchomiono program. |
|
gdzie |
1.4. Zmienne środowiskowe
| Zmienna | Opis |
|---|---|
|
Nazwa aktualnego użytkownika |
|
Ścieżka do katalogu domowego |
|
Zwraca listę ścieżek na których wyszukiwane są programy do uruchomienia, ścieżki oddzielone są za pomocą znaku dwukropka |
|
Zwraca losową liczbę z przedziału 0 i 32767. |
|
Ścieżka aktualnego katalogu |
|
Ścieżka do powłoki |
1.5. Zasięg zmiennych
Poleceniem export zmieniamy zasięg zmiennej na globalny.
1.6. Zmiana wartości zmiennej dla konkretnego programu
W celu podania zmiennej dla danego uruchomienia poprzedzamy polecenie definicją zmiennej.
ZMIENNA="wartosc" ./program.sh
1.7. Renderowanie zmiennej
Podobnie jak przy podawaniu formatu daty do polecenia date, możemy korzystać ze zmiennych w poleceniach.
echo "Ala ma $ZMIENNA"
ls $ZMIENNA.txt
1.8. Przypisanie stdout do zmiennej
ZMIENNA=`ls -al`
ZMIENNA=$(ls -al)
1.9. Wczytanie wartości zmiennej interaktywnie
read ZMIENNA
1.10. Wykonywanie operacji matematycznych
echo $((1+2))
echo $[1+2]
echo $[A+B]
1.11. Obcinanie części tekstu
${ZMIENNA OPERATOR WZORZEC} - bez odstępów wokół operatora
Operatory:
-
%- obcina najkrótsze dopasowanie do wzorca od tyłu -
%%- obcina najdłuższe dopasowanie do wzorca od tyłu -
#- obcina najkrótsze dopasowanie do wzorca od przodu -
##- obcina najdłuższe dopasowanie do wzorca od przodu
2. Praktyka
2.1. Zadanie
|
|
set, export |
Wyświetl zawartość zmiennych systemowych.
2.2. Zadanie
Wyświetl numer użytkownika UID na komputerze w laboratorium i na wierzbie. Czy są takie same?
2.3. Zadanie
Ustaw zmienną środowiskową o nazwie OPCJA na wartość –alh
2.4. Zadanie
Użyj zmiennej środowiskowej OPCJA razem z poleceniem ls aby wyświetlić pliki w katalogu
$HOME z opcjami znajdującymi się w zmiennej $OPCJA.
2.5. Zadanie
|
|
exit |
Sprawdź czy zmienna OPCJA dostępna jest w kolejnej instancji shella którą uruchomisz z
bieżącej instancji (uruchom polecenie bash, aby wyjść z kolejnej instancji shella wpisz exit).
2.6. Zadanie
Sprawdź jaki kod wyjścia (exit status) zwraca polecenie ls gdy poprawnie wylistuje pliki oraz
wtedy gdy podany jako parametr plik lub katalog nie istnieje.
2.7. Zadanie
Spróbuj uruchomić kolejną instancję powłoki i poleceniem exit zwrócić kod wyjścia 13.
Sprawdź w powłoce wyżej czy otrzymano kod właśnie taki kod wyjścia.
2.8. Zadanie
Ustaw wartość zmiennej JABLKA na 2. Skonstruuj polecenie uzupełniając wielokropki aby
uzyskać wymagany tekst na wyjściu:
echo "Ja mam … jabłek. Ty masz … jabłek. On ma … jabłek."
ma wyświetlić
Ja mam 2 jabłek. Ty masz 4 jabłek. On ma 8 jabłek.
Musisz użyć zmiennej JABLKA oraz operacji matematycznych.
2.9. Zadanie
Dodaj do zmiennej środowiskowej PATH ścieżkę $HOME/bin.
2.10. Zadanie
Za pomocą operatorów obcinania napisów wyświetl tak obciętą ścieżkę PATH aby zawierała
jedynie ścieżkę, którą należało dodać w poprzednim zadaniu.
2.11. Zadanie
Ustaw zmienną TEKST na wartość "raz-dwa;trzy-cztery;piec-szesc;siedem-osiem".
Obetnij zmienną TEKST tak aby uzyskać następujące napisy:
-
raz-dwa -
siedem-osiem -
raz -
osiem -
szesc;siedem -
dwa;trzy -
szesc -
piec -
cztery;piec
Uwaga: możesz używać zmiennych pośrednich jeśli potrzebujesz. Spróbuj nie używać liter we wzorcach.
2.12. Zadanie
Spróbuj wykonać powyższe ćwiczenie używając polecenia cut zamiast operatorów obcinania tekstu.