Przejdź do głównej zawartości

export


  • export – wbudowane polecenie powłok Bourne‑podobnych umożliwiające oznaczenie zmiennych tak, aby zostały przekazane do środowiska procesów potomnych.
  • Kluczowe zastosowania: konfiguracja ścieżek (PATH), ustawienia lokalizacji (LANG), parametrów aplikacji (JAVA_HOME) w skryptach i sesjach.
  • Dostępne w Bash, Dash, Zsh, Ksh, BusyBox sh i większości powłok POSIX.

Okno terminala
export [opcje] [nazwa[=wartość] ...]
  • Bez argumentów (lub z -p) wypisuje wszystkie aktualnie wyeksportowane zmienne.
  • Można łączyć wiele par nazwa=wartość w jednym wywołaniu.

ParametrOpis
nazwa=wartośćDefinicja lub modyfikacja zmiennej środowiskowej i natychmiastowe jej eksportowanie.
-pWypisz w formacie declare -x listę wszystkich zmiennych oznaczonych do eksportu.
-n nazwaUsuń flagę eksportu dla wskazanej zmiennej, nie usuwając jej wartości.
-fEksportuj nazwaną funkcję powłoki (Bash, Ksh).
--helpKrótka pomoc online (w Bash help export).

Okno terminala
# Dodaj katalog do PATH i udostępnij go wszystkim procesom potomnym
export PATH="$PATH:/opt/mój_bin"
# Ustaw domyślny edytor i natychmiast uruchom vim, który dziedziczy zmienną
export EDITOR=vim
vim plik.txt
# Wyświetl listę wszystkich wyeksportowanych zmiennych w bieżącej sesji
export -p
# Wyłącz eksport zmiennej DEBUG, lecz pozostaw ją w powłoce
export -n DEBUG
# Eksportuj funkcję do subshelli (tylko Bash/Ksh)
myfunc() { echo "Hello $1"; }
export -f myfunc
  • Pierwszy przykład modyfikuje ścieżkę wykonywalnych plików użytkownika.
  • Drugi pokazuje typowe ustawienie preferowanego edytora i natychmiastowe jego użycie.
  • Trzeci służy do diagnostyki i debugowania środowiska.
  • Czwarty demonstruje usuwanie flagi eksportu – procesy potomne nie odziedziczą zmiennej.
  • Piąty umożliwia przekazywanie funkcji shellowych do subshelli lub przez env -i bash -c ....

  • export modyfikuje wyłącznie środowisko bieżącej powłoki i jej potomków; proces nadrzędny (np. terminal) nie otrzyma zmian po zakończeniu skryptu.
  • Nazwy zmiennych muszą zaczynać się literą lub podkreśleniem i mogą zawierać cyfry; znaki specjalne są zabronione.
  • W Bash opcja set -a automatycznie eksportuje wszystkie nowo zadeklarowane zmienne – przydatne w plikach konfiguracyjnych, lecz może prowadzić do zanieczyszczenia środowiska.
  • Wartości z odstępami wymagają cudzysłowów lub apostrofów: export TITLE="Moja aplikacja".
  • Funkcje eksportowane różnią się między powłokami; w Dash i BusyBox nie są wspierane.

Błąd / KomunikatPrzyczynaRozwiązanie
export: not valid identifierNiepoprawna nazwa zmiennej (np. zaczyna się cyfrą lub zawiera -)Zmień nazwę na zgodną z POSIX, np. MY_VAR
Zmienna nie widoczna w skrypcie podrzędnymZapomniano użyć export lub wywołano po uruchomieniu procesuEksportuj przed uruchomieniem programu: export VAR=value && cmd
Funkcja nie przekazanaPowłoka docelowa nie obsługuje export -fUżyj Bash lub przekaz skrypt zamiast funkcji