Podstawy dotyczące zmiennych powłoki BASH
Znaki specjalne
- $ – Wskazuje nazwę zmiennej, umożliwiając podstawienie jej wartości.
- \ – Znak maskujący (Wyłącza interpretację poleceń do niego przylegających).
- ` ` – Umożliwia cytowanie poleceń zawartych pomiędzy odwróconymi apostrofami. Dzięki czemu mogą być one przechowywane pod postacią zmiennej, np. [x=`ls -la $PWD`].
- ‘ ‘ – Wyłącza interpretację poleceń znajdujących się pomiędzy odwróconymi apostrofami.
- ” “ – Przetrzymuje tekst czy wartości zmiennych zawierających spację.
Manipulowanie wartością zmiennej
Zmiana wielkości znaków
- ${zmienna,} – Zmienia pierwszą literę danej zmiennej na małą.
- ${zmienna,,} – Zmienia wszystkie litery danej zmiennej na małe.
- ${zmienna^} – Zmienia pierwszą literę danej zmiennej na dużą.
- ${zmienna^^} – Zmienia wszystkie litery danej zmiennej na duże.
- ${zmienna~} – Odwraca wielkość pierwszej litery podanej zmiennej.
- ${zmienna~~} – Odwraca wielkość wszystkich liter podanej zmiennej.
- ${!wartość*} – Odnosi się do zmiennych które zaczynają się od podanej wartości.
- ${!wartość@} – Odnosi się do zmiennych które zaczynają się od podanej wartości.
Usuwanie ciągów znaków
- ${zmienna#wzorzec} – Usuwa wartość zmiennej do pierwszego momentu wysępienia określonego w komendzie wzorca. Przykładowa komenda [${zmienna#*.}] użyta na zmiennej o wartości (/home/johny/example.txt.gz) da wynik (txt.gz).
- ${zmienna##wzorzec} – Usuwa wartość zmiennej do ostatniego momentu wysępienia określonego w komendzie wzorca. Przykładowa komenda [${zmienna##*.}] użyta na zmiennej o wartości (/home/johny/example.txt.gz) da wynik (gz).
- ${zmienna%wzorzec} – Xxx. Przykładowa komenda [${zmienna%/*}] użyta na zmiennej o wartości (/home/johny/example.txt.gz) da wynik (/home/johny).
- ${zmienna%%wzorzec} – Xxx. Przykładowa komenda [${zmienna%%/*}] użyta na zmiennej o wartości (/home/johny/example.txt.gz) da wynik (/home/johny/example).
Zamiana ciągów znaków
- ${zmienna/wzorzec/ciąg znaków} – Zastępuje pierwszy ciąg znaków występujący w danej zmiennej, na inną wskazaną w komendzie wartość. Przykładowa komenda [${zmienna/example/rkkr}] użyta na zmiennej o wartości (/home/johny/examples/example.txt.gz) da wynik (/home/johny/rkkrs/example.txt.gz). Podanie pustej wartości zamiast ciągu znaków usunie dany ciąg znaków.
- ${zmienna//wzorzec/ciąg znaków} – Zastępuje wszystkie ciągi znaków występujące w danej zmiennej, na inną wskazaną w komendzie wartość. Przykładowa komenda [${zmienna//example/rkkr}] użyta na zmiennej o wartości (/home/johny/examples/example.txt.gz) da wynik (/home/johny/rkkrs/rkkr.txt.gz). Podanie pustej wartości zamiast ciągu znaków usunie dany ciąg znaków.
Usuwanie znaków
- ${zmienna:do} – Usuwa wartość zmiennej do wskazanego znaku. Przykładowa komenda [${zmienna:4}] użyta na zmiennej o wartości (ala_ma_kota) da wynik (ma_kota).
- ${zmienna:od:do} – Usuwa wartość zmiennej poza wskazanym zakresem znaków. Przykładowa komenda [${zmienna:0:3}] użyta na zmiennej o wartości (ala_ma_kota) da wynik (ala).
Ilość znaków
- ${#zmienna} – Wyświetla ilość znaków z jakie składa się dana zmienna. Przykładowa komenda [${#zmienna}] użyta na zmiennej o wartości (czajnik) da wynik (7).
Zmienne programowe
- zmienna=”wartość zmiennej” – Prosta deklaracja zmiennej.
linux$ zmienna =”Wartość zmiennej”
linux$ echo ${zmienna}
linux$ echo $zmienna
Wyświetla wartość stworzonej zmiennej.
Zmienne systemowe
- $HOME – Ścieżka do katalogu domowego.
- $USER – Login użytkownika.
- $HOSTNAME – Nazwa hosta.
- $OSTYPE – Rodzaj systemu operacyjnego.
- $UID (Unique User ID) – Unikalny numer użytkownika.
- $TERM – Rodzaj wykorzystywanego terminala.
linux$ printenv | less
Wyświetla wszystkie dostępne zmienne środowiskowe.

Dodaj komentarz