(Bh) Zmienne powłoki BASH*

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.
PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz