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.
Leave A Comment?