lokalne - widoczne tylko dla tego shella w którym został ustawione
Aby bardziej uzmysłowić sobie różnicę między nimi zrób mały eksperyment:
otwórz xterma (widoczny podshell) i wpisz:
x="napis"
echo $x
xterm
x="napis" zdefiniowałeś właśnie zmienną x, która ma wartość "napis"
echo $x wyświetli wartość zmiennej x
xterm wywołanie podshella
wpisz więc jeszcze raz:
echo $x nie pokaże nic, bo zmienne lokalne nie są widoczne w podshellach
Możesz teraz zainicjować zmienną globalną:
export x="napis"
Teraz zmienna x będzie widoczna w podshellach, jak widać wyżej służy do tego
polecenie export, nadaje ono wskazanym zmiennym atrybut zmiennych globalnych.
Jeśli napiszesz samo export, opcjonalnie export -p uzyskasz listę
aktualnie eksportowanych zmiennych. Na tej liście przed nazwą każdej zmiennej znajduje
się zapis:
declare-x
To wewnętrzne polecenie BASH-a, służące do definiowania zmiennych
i nadawania im atrybutów, -x to atrybut eksportu czyli jest to, to samo co polecenie
export. Ale tu uwaga! Polecenie declare występuje tylko w BASH-u, nie ma go w
innych powłokach, natomiast export występuje w ksh, ash i innych, które
korzystają z plików startowych /etc/profile. Dlatego też zaleca się stosowanie
polecenia export.
export -n zmienna
spowoduje usunięcie atrybutu eksportu dla danej zmiennej
Niektóre przykłady zmiennych środowiskowych:
$HOME #ścieżka do twojego katalogu domowego
$USER #twój login
$HOSTNAME #nazwa twojego hosta
$OSTYPE #rodzaj systemu operacyjnego
itp. dostępne zmienne srodowiskowe można wyświetlić za pomoca polecenia:
printenv | more