Zasięg zmiennych

W powłoce mamy do czynienia z dwoma typami zasięgu:

  • lokalnym (definiowane z użyciem znacznika local)
  • globalnym (wszystkie pozostałe z wyjatkiem parametrów funkcji - dostęp do nich mozliwy jest z całego skryptu)

Poniższy skrypt demonstruje wykorzystanie zmiennych globalnych i lokalnych:

Podpowiedź

By w pełni zrozumieć zagadnienie zasięgu zamiennych polecam zapoznanie się z rozdziałem organizacja kodu w skryptach Bash.

#!/bin/bash
function wyswietl() {
    local zmienna_lokalna=1024
    zmienna_globalna_F=32
    echo "zmienna_lokalna ma wartość: $zmienna_lokalna"
    echo "zmienna_globalna_F ma wartość: $zmienna_globalna_F"
}
echo ":: === Wchodze do wyswietl"
wyswietl
echo ":: === Poza funkcją"
echo "zmienna_lokalna poza funkcją to: $zmienna_lokalna"
echo "zmienna_globalna_F poza funkcją to: $zmienna_globalna_F"

Po uruchomieniu otrzymamy następujący wynik:

:: === Wchodze do wyswietl
zmienna_lokalna ma wartość: 1024
zmienna_globalna_F ma wartość: 32
:: === Poza funkcją
zmienna_lokalna poza funkcją to:
zmienna_globalna_F poza funkcją to: 32

Zmienna lokalna w programie głównym nie ma żadnej wartości!.