Cum să exporți variabile BASH

Configurare noua (How To)

Situatie

Când rulează un script, este în propriul proces, iar variabilele pe care le folosește nu pot fi văzute în afara acelui proces. Dacă doriți să partajați o variabilă cu un alt script lansat de scriptul dvs., trebuie să exportați acea variabilă. Vă vom arăta cum să faceți acest lucru cu două scripturi.

Solutie

Pasi de urmat

Mai întâi, salvați următoarele cu numele fișierului script_unu.sh:

#!/bin/bash

first_var=alpha
second_var=bravo

# check their values
echo "$0: first_var=$first_var, second_var=$second_var"

export first_var
export second_var

./script_doi.sh

# check their values again
echo "$0: first_var=$first_var, second_var=$second_var"

Aceasta creează două variabile, first_var și second_var și atribuie unele valori. Acesta imprimă acestea în fereastra terminalului, exportă variabilele și apelează script_doi.sh. Când script_doi.sh se încheie și fluxul procesului revine la acest script, acesta imprimă din nou variabilele în fereastra terminalului. Apoi, puteți vedea dacă s-au schimbat.

Al doilea script pe care îl vom folosi este script_doi.sh. Acesta este scriptul pe care script_unu.sh îl apelează. Introduceți următoarele:

#!/bin/bash

# check their values
echo "$0: first_var=$first_var, second_var=$second_var"

# set new values
first_var=charlie
second_var=delta

# check their values again
echo "$0: first_var=$first_var, second_var=$second_var"

Acest al doilea script tipărește valorile celor două variabile, le-au fost alocate noi valori și apoi le imprimă din nou.

Pentru a rula aceste scripturi, trebuie să tastați următoarele pentru a le face executabile:

chmod +x script_unu.sh
chmod +x script_doi.sh



Și acum, tastați următoarele pentru a lansa script_unu.sh:

./script_unu.sh

Asta ne spune output-ul:

  • script_unu.sh tipărește valorile variabilelor care sunt alfa și bravo
  • script_doi.sh tipărește valorile variabilelor (alfa și bravo) pe măsură ce le-a primit
  • script_doi.sh le schimbă în charlie și delta
  • script_unu.sh tipărește valorile variabilelor, care sunt încă alfa și bravo

Ceea ce se întâmplă în al doilea script, rămâne în al doilea script. Este ca și cum copiile variabilelor sunt trimise la al doilea script, dar nu sunt aruncate la ieșirea din script. Variabilele originale din primul script nu sunt modificate de nimic care se întâmplă cu copiile acestora în al doilea.

Tip solutie

Permanent

Voteaza

(20 din 46 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?