Zmienne służą do przechowywania wartości różnych typów podczas wykonywania programu. W skryptach Bash istnieją dwa typy zmiennych: globalne i lokalne.
Zmienne globalne mogą być używane przez wszystkie skrypty Bash w twoim systemie, podczas gdy zmienne lokalne mogą być używane tylko w skrypcie (lub powłoce), w którym są zdefiniowane.
Zmienne globalne są zazwyczaj domyślnie dostarczane w systemie i są to głównie zmienne środowiskowe i konfiguracyjne. Z drugiej strony zmienne lokalne są definiowane przez użytkownika i mają dowolne zastosowanie.
Bash Zmienne lokalne
Aby utworzyć zmienną, musisz przypisać wartość do nazwy zmiennej. Bash jest językiem bez typu, więc nie musisz wskazywać typu danych podczas definiowania zmiennych.
var1=Witaj
Bash pozwala również na wiele przypisań w jednej linii:
a=6 b=8 c=9
Podobnie jak wiele innych języków programowania, Bash używa operatora przypisania = aby przypisać wartości do zmiennych. Należy zauważyć, że po obu stronach operatora przypisania nie powinno być żadnych spacji. W przeciwnym razie otrzymasz błąd kompilacji.
Związane z: Co oznacza "Bash" w Linuksie?
Kolejny kluczowy punkt do zapamiętania: Bash nie pozwala najpierw zdefiniować zmiennej, a następnie przypisać jej wartość. Musisz przypisać wartość do zmiennej podczas tworzenia.
var2 # błąd kompilacji
var2=Świat
Czasami może być konieczne przypisanie do zmiennej ciągu zawierającego spację. W takim przypadku umieść ciąg w cudzysłowie.
# var3=Witaj świecie
# powyższe zadanie nie działa
var3='Witaj świecie'
Zwróć uwagę na użycie pojedynczych cudzysłowów. Te cudzysłowy są również nazywane „mocnymi cudzysłowami”, ponieważ przypisują wartość dokładnie tak, jak jest napisana, bez względu na jakiekolwiek znaki specjalne.
W powyższym przykładzie mogłeś również użyć podwójnych cudzysłowów („słabych cudzysłowów”), ale nie oznacza to, że zawsze można ich używać zamiennie. Dzieje się tak, ponieważ podwójne cudzysłowy zastępują znaki specjalne (takie jak znaki $), zamiast interpretować je dosłownie.
Zobacz przykład poniżej:
zm4=89
echo "Liczba to $var4"
echo 'Liczba to $var4'
# Pierwsze wydruki wyjściowe: 89
# Drugie wyjście drukuje pozostawia "$var4" bez zmian
Jeśli chcesz przypisać wyjście wiersza poleceń do swojej zmiennej, użyj odwrotnych cudzysłowów (``). Traktują zawarty w nich ciąg znaków jako polecenie terminala i zwracają jego wynik.
var5="Obecnie pracujesz w tym katalogu: `pwd`"
Rozszerzenie parametrów w Bash
Rozszerzenie parametrów po prostu odnosi się do dostępu do wartości zmiennej. W najprostszej formie używa znaku specjalnego $ po którym następuje nazwa zmiennej (bez spacji pomiędzy):
var6=Jack
echo Nazywam się $var6
Możesz także użyć składni ${nazwa zmiennej} aby uzyskać dostęp do wartości zmiennej. Ta forma jest bardziej odpowiednia, gdy może pojawić się zamieszanie wokół nazwy zmiennej.
m=Śred
echo Med oznacza ${m}ical
Jeśli pominiesz nawiasy klamrowe, ${m}ical zostanie zinterpretowana jako zmienna złożona (która nie istnieje). Takie użycie nawiasów klamrowych ze zmiennymi jest znane jako „podstawianie”.
Zmienne globalne
Jak wspomniano wcześniej, twój system Linux ma kilka wbudowanych zmiennych, do których można uzyskać dostęp we wszystkich twoich skryptach (lub powłokach). Dostęp do tych zmiennych jest uzyskiwany przy użyciu tej samej składni, co zmienne lokalne.
Związane z: Jak tworzyć i wykonywać skrypty Bash w systemie Linux
Większość tych zmiennych jest pisana WIELKIMI literami. Jednak niektóre to pojedyncze znaki, które nie są nawet znakami alfanumerycznymi.
Oto kilka typowych użytecznych zmiennych globalnych:
DOM: Zapewnia katalog domowy użytkownika
MUSZLA:Zapewnia typ używanej powłoki (np. Bash, csh..etc)
?: Podaje status wyjścia poprzedniego polecenia
Aby uzyskać listę zmiennych globalnych w systemie, uruchom printenv (lub env) polecenie:
$ printenv
Pętle w skryptach Bash
Teraz wiesz, czym są zmienne, jak je przypisać i jak z ich pomocą wykonać podstawową logikę Bash.
Pętle umożliwiają iterację wielu instrukcji. Bash mieści dla pętle i dopóki pętle o prostej składni dla wszystkich Twoich potrzeb związanych z pętlami.
Jeśli opanowujesz sztukę tworzenia Bash, dla pętle powinny być następne na twojej liście.
Po co w kółko uruchamiać ten sam kod w skrypcie powłoki, skoro można zrobić to za nas pętla for?
Czytaj dalej
- Programowanie
- Powłoka Bash dla Linuksa
- Wskazówki dotyczące kodowania

Jerome jest pisarzem sztabowym w MakeUseOf. Zajmuje się artykułami na temat programowania i Linuksa. Jest także entuzjastą kryptowalut i zawsze śledzi branżę kryptograficzną.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować