Wstęp

Wstęp

eksport Polecenie jest jednym z poleceń wbudowanych pocisków bash, co oznacza, że ​​jest częścią twojej skorupy. eksport Polecenie jest dość proste w użyciu, ponieważ ma prostą składnię z tylko trzema dostępnymi opcjami poleceń. Ogólnie rzecz biorąc eksport polecenie oznacza, że ​​zmienna środowiskowa jest eksportowana z nowo rozwidlonymi procesami dziecka, a zatem pozwala procesowi dziedziczyć wszystkie oznaczone zmienne. Jeśli nie masz pewności, co to oznacza przeczytaj, ponieważ ten artykuł wyjaśni ten proces bardziej szczegółowo.

Często używane opcje

  • -P
    Lista wszystkich nazw, które są eksportowane w bieżącej powładzie
  • -N
    Usuń nazwy z listy eksportu
  • -F
    Nazwy są eksportowane jako funkcje

Podstawy eksportu

Zastanów się nad następującym przykładem:

$ a = LinuxCareer.com
$ echo $ a
Linuxcareer.com
$ bash
$ echo $ a
$
  • Wiersz 1: Nowa zmienna o nazwie „A” jest tworzona, aby zawierać ciąg „LinuxCareer.com ”
  • Wiersz 2: Używamy polecenia ECHO do wydrukowania zawartości zmiennej „A”
  • Linia 3: Stworzyliśmy nową powłokę dla dzieci
  • Wiersz 4: Zmienna „A” nie ma już zdefiniowanych żadnych wartości

Z powyższego widzimy, że każdy nowy proces dzieci rozwidlony z procesu nadrzędnego domyślnie nie odziedziczy zmiennych rodzica. To tutaj eksport Polecenie przydaje się. Poniżej znajduje się nowa wersja powyższego przykładu za pomocą eksport Komenda:

$ a = LinuxCareer.com
$ echo $ a
Linuxcareer.com
$ eksport a
$ bash
$ echo $ a
Linuxcareer.com
$

Na linii 3 użyliśmy teraz eksport polecenie, aby zmienna „a” zostanie wyeksportowana po tworzeniu nowego procesu dziecka. W rezultacie zmienna „A” nadal zawiera ciąg „LinuxCareer.com ”nawet po utworzeniu nowej powłoki bash. Należy zauważyć, że aby wyeksportować zmienną „a”, która będzie dostępna w nowym procesie, proces musi być rozwidlony z procesu nadrzędnego, w którym faktyczna zmienna została wyeksportowana. Związek między dzieckiem a procesem macierzystym wyjaśniono poniżej.



Proces dziecka kontra rodzica

W tej sekcji krótko wyjaśniamy związek między dzieckiem a procesem rodziców. Każdy proces może być jednocześnie procesem rodziców i dzieci. Jedynym wyjątkiem jest w tym proces, który jest zawsze oznaczony PID (identyfikator procesu) 1. Dlatego, w tym jest rodzicem wszystkich procesów działających w systemie Linux.

$ ps -p 1
PID Tty Time CMD
1 ? 00:00:02 Init

Każdy utworzony proces będzie zwykle zawierał proces nadrzędny, z którego został utworzony i będzie uważany za dziecko tego procesu nadrzędnego. Na przykład:

$ echo $$
27861
$ bash
$ echo $$
28034
$ PS --pd 27861
PID Tty Time CMD
28034 PTS/3 00:00:00 Bash
  • Linia 1: Wydrukuj PID dla prądu - 27861
  • Linia 2: Utwórz nowy proces dziecka z procesu ID 27861
  • Linia 3: Wydrukuj PID dla prądu - 28034
  • Linia 4: z użyciem Ps polecenie wydrukuj proces dziecięcego PID 27861

Podczas tworzenia nowego procesu dziecka eksport Polecenie zapewnia po prostu, że wszelkie eksportowane zmienne w procesie nadrzędnym są dostępne w procesie dziecka.

Za pomocą polecenia Eksport

Teraz, gdy nauczyliśmy się niektórych podstaw, możemy nadal odkrywać eksport Polecenie bardziej szczegółowo. Podczas korzystania z eksport polecenie bez żadnej opcji i argumentów po prostu wydrukuje wszystkie nazwy oznaczone dla eksportu do procesu dziecka. To samo, gdy korzystasz z opcji -p:

$ eksport
Declare -x colorfgbg = "15; 0"
Declare -x defaults_path = "/usr/share/gconf/cynamon.domyślny.ścieżka"
Declare -x Desktop_Session = „Cinnamon”
Declare -x display = ": 0"…

Jak pokazano wcześniej, aby wyeksportować zmienną, po prostu używamy nazwy zmiennej jako argumentu do polecenia eksportu.

$ Myvar = 10
$ eksport | Grep myvar
$ eksport mivar
$ eksport | Grep myvar
Deklaruj -x myvar = "10"

Jak widać, po wyeksportowaniu zmiennej MyVar pojawi się na liście zmiennych eksportowanych (wiersz 4). Powyższy przykład można skrócić za pomocą eksport polecenie bezpośrednio z oceną zmiennej.

$ eksport myvar = 10
$ eksport | Grep myvar
Deklaruj -x myvar = "10"

Najczęstsze zastosowanie eksport Polecenie polega na definiowaniu zmiennej powłoki ścieżki:

Eksportuj ścieżka = $ ścieżka:/usr/local/bin

W powyższym przykładzie umieściliśmy dodatkową ścieżkę/USR/Local/Bin do istniejącej definicji ścieżki.



Eksportowanie funkcji powłoki

Z opcją -f eksport Komenda może być również używana do eksportowania funkcji. W poniższym przykładzie utworzymy nową funkcję bash wywoływaną Nazwa wydruku, który po prostu użyje Echo polecenie do wydrukowania ciągu „LinuxCareer.com ”.

$ printName () echo "LinuxCareer.com ";
$ printname
Linuxcareer.com
$ export -f printname
$ bash
$ printname
Linuxcareer.com

Usuwanie nazw z listy eksportu

Zgodnie z powyższym przykładem mamy teraz zmienną MyVar zdefiniowaną na naszej liście eksportu.

$ eksport | Grep myvar
Deklaruj -x myvar = "10"

Aby usunąć tę zmienną z listy eksportu, musimy użyć opcji -n eksportu.

$ eksport | Grep myvar
Deklaruj -x myvar = "10"
$ eksport -n myvar
$ eksport | Grep myvar
$

Wniosek

Ten artykuł obejmował podstawowe zastosowanie eksport Komenda. Aby uzyskać więcej informacji Wykonaj polecenie:

$ Man Export

Powiązane samouczki Linux:

  • Jak propagować sygnał do procesów dziecka z bash…
  • Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
  • Podstawowe polecenia Linux
  • Jak używać polecenia PS w Linux: Przewodnik dla początkujących
  • Specjalne zmienne bash z przykładami
  • Wielokrotyściowe skrypty i zarządzanie procesami w…
  • Jak śledzić połączenia systemowe wykonane przez proces z Strace na…
  • Polecenie człowieka w Linux z przykładami
  • Przydatne przykłady i sztuczki
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa