Jak zdefiniować zmienną z eksportem lub bez eksportu

Jak zdefiniować zmienną z eksportem lub bez eksportu

Bash to popularny język skryptowy używany do automatyzacji zadań i pracy z interfejsem wiersza poleceń. Jedną z podstawowych cech BASH jest możliwość definiowania zmiennych, które można użyć do przechowywania wartości i przekazywania ich między różnymi poleceniami lub skryptami. Jednak podczas definiowania zmiennych w BASH należy jasno określić różnicę między zdefiniowaniem zmiennej ze słowem kluczowym Export lub bez.

Postępuj zgodnie z wytycznymi tego artykułu, aby dowiedzieć się, jak zdefiniować zmienną z eksportem lub bez eksportu.

Definiowanie zmiennej bez eksportu w BASH

Definiowanie zmiennej bez eksportu sprawia, że ​​jest to zmienna lokalna, która jest dostępna tylko w bieżącej sesji powłoki lub skryptu, co oznacza, że ​​zmienną nie można uzyskać przez procesy dziecięce lub skrypty, które są wywoływane z bieżącego skryptu. Zmienne lokalne są przydatne przy przechowywaniu wartości tymczasowych, które są potrzebne tylko w określonej części skryptu, powiedzmy, że masz skrypt, który definiuje zmienną wywoływaną My_var Bez eksportu:

#!/bin/bash
My_var = "Hello, Linux!"
Echo $ my_var
./child_script.cii


W tym przypadku, My_var jest zmienną lokalną i jest dostępna tylko w bieżącym skrypcie. Kiedy skrypt działa, drukuje "Cześć, Linux!" do konsoli, ale kiedy nazywa to scenariusz dziecięcy (./child_script.sh), skrypt dziecięcy nie może uzyskać dostępu do wartości My_var.


Na powyższym obrazie widać wyraźnie, że po wywołaniu skryptu dziecięcego nie jest dostępny do wartości zmiennej i zwraca pustą linię zamiast wyjścia pliku skryptu.

Definiowanie zmiennej z eksportem w Bash

Z drugiej strony zdefiniowanie zmiennej z słowem kluczowym eksportu sprawia, że ​​jest to zmienna środowiskowa. Zmienne środowiskowe są dostępne dla wszystkich procesów dziecięcych, które są odrodzone z bieżącej sesji powłoki lub skryptu. Oznacza to, że zmienną można używać w różnych skryptach lub poleceń wywoływanych z bieżącego skryptu, więc rozważmy ten sam skrypt, ale z za pomocą My_var Zdefiniowane z eksportem:

#!/bin/bash
Eksport my_var = "Hello, Linux!"
Echo $ my_var
./child_script.cii


W tym przypadku, My_var jest zmienną środowiskową i jest dostępna dla wszystkich procesów dziecięcych, które są odrodzone z bieżącej sesji powłoki lub skryptu. Kiedy skrypt działa, drukuje "Cześć, Linux!" do konsoli, a kiedy nazywa to skrypt dziecięcy ./child_script.cii, Skrypt dziecięcy może uzyskać dostęp do wartości My_var.


Na powyższym obrazie widać wyraźnie, że po wywołaniu skryptu dziecięcego dostęp do wartości zmiennej i zwrócił wartość, która była „”Witam, Linux".

Notatka: Tutaj, w przykładowym kodzie, utworzyłem skrypt dziecięcy, który wywołuje zmienną w skrypcie głównym, więc oto kod powłoki dla skryptu dziecięcego: Ponadto musisz sprawić, że plik skryptu można wykonywać za pomocą „Chmod +x” polecenie, abyś mógł uruchomić skrypt.

#!/bin/bash
Echo $ my_var

Wniosek

Podczas pracy ze zmiennymi w BASH ważne jest zrozumienie zakresu zmiennej. Definiowanie zmiennej bez eksportu sprawia, że ​​jest to zmienna lokalna, która jest dostępna tylko w bieżącej sesji powłoki lub skryptu, jednocześnie definiując zmienną z eksportem, czyni ją zmienną środowiskową, która jest dostępna dla wszystkich procesów dziecięcych z bieżącej sesji powłoki lub skryptu.