Wstęp
- 1466
- 268
- Pani Janina Cieśla
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
- « Jak tworzyć kopię zapasową i przywrócić uprawnienia całego katalogu w Linux
- Instalowanie Idea IntelliJ dla Scala Development w Linux »