Trochę mi brakuje co do celu set
i export
Bash (i chyba też innych pocisków).
Sądzę, że służy to do ustawiania zmiennych środowiskowych, ale można to zrobić tylko VARIABLE=VALUE
, prawda?
Również pisanie set
i export
samodzielnie pokazuje różne wartości.
Więc jaki jest ich cel?
Odpowiedzi:
export
eksportuje do potomków bieżącego procesu, domyślnie nie są eksportowane. Na przykład:set
, z drugiej strony, ustawia atrybuty powłoki, na przykład parametry pozycyjne.Zauważ, że
baz
nie jest przypisanyfoo
, staje się po prostu dosłownym parametrem pozycyjnym. Istnieje wiele innych rzeczyset
(głównie opcje powłoki), patrzhelp set
.Jeśli chodzi o drukowanie,
export
wywołane bez argumentów wypisuje wszystkie zmienne w środowisku powłoki.set
drukuje również zmienne, które nie są eksportowane. Może także eksportować niektóre inne obiekty (chociaż należy pamiętać, że nie jest to przenośne), patrzhelp export
.źródło
foo=bar command
. Jest to domyślny eksport dla pojedynczego polecenia. Drugą możliwością jest to, żehttp_proxy
jest już wyeksportowany do twojego środowiska przed jego modyfikacją.Patrz
help set
: zestaw służy do ustawiania atrybutów powłoki i atrybutów pozycyjnych.Zmienne, które nie są eksportowane, nie są dziedziczone przez procesy potomne.
export
służy do oznaczania zmiennej do eksportu.źródło