Przejdź do głównej zawartości

local


  • local – polecenie wbudowane w Bash (oraz niektóre inne powłoki), które pozwala deklarować zmienne lokalne w kontekście funkcji.
  • Zmienne lokalne istnieją tylko w czasie wykonywania funkcji i nie wpływają na zmienne o tej samej nazwie poza nią.
  • Stosowane do izolowania danych i unikania konfliktów nazw w skryptach.

Okno terminala
local [opcje] nazwa[=wartość] ...
  • Można deklarować wiele zmiennych jednocześnie.

ParametrOpis
nazwaNazwa zmiennej lokalnej
=wartośćOpcjonalna wartość przypisana w momencie deklaracji
--helpWyświetla pomoc dotyczącą wbudowanych poleceń powłoki

Okno terminala
# Deklaracja zmiennej lokalnej w funkcji
moja_funkcja() {
local licznik=5
echo "Licznik w funkcji: $licznik"
}
# Zmienna poza funkcją nie jest modyfikowana
licznik=10
moja_funkcja
echo "Licznik poza funkcją: $licznik"
# Deklaracja kilku zmiennych naraz
moja_inna_funkcja() {
local a=1 b=2 c=3
echo "$a $b $c"
}
  • Pierwszy przykład pokazuje izolację zmiennej w funkcji.
  • Drugi demonstruje brak wpływu na zmienną globalną o tej samej nazwie.
  • Trzeci pokazuje deklarację wielu zmiennych jednocześnie.

  • local działa tylko wewnątrz funkcji powłoki lub w trybie source w pliku skryptu.
  • Nie jest standardem POSIX – w powłokach zgodnych z POSIX (np. dash) nie występuje.
  • W niektórych powłokach (np. zsh) zachowuje się podobnie, ale może mieć dodatkowe opcje.

Błąd / KomunikatPrzyczynaRozwiązanie
local: can only be used in a functionUżycie local poza funkcjąPrzenieś deklarację do wnętrza funkcji
command not found: localPowłoka nie obsługuje localUżyj powłoki Bash lub declare jako alternatywy