/ / Exportieren einer globalen Variablen von untergeordneten zu übergeordneten Elementen in Shell-Skripten - Linux, Bash, Shell, Unix, Centos

Exportieren einer globalen Variable von Kind zu Eltern in Shell-Skripten - Linux, Bash, Shell, Unix, Centos

Ist es möglich, eine Variable aus einem übergeordneten Element zu exportierenShell-Skript für seine Kinder? Beim Ausführen der beiden folgenden Skripts wird immer 0 zurückgegeben. Ich möchte jedoch, dass 3 zurückgegeben wird. Ich habe auch versucht, den Variablenfehler zu exportieren, festzulegen und den .bash_profile ohne Erfolg hinzuzufügen.

test.sh

$ cat test.sh
#!/bin/bash
error=0
./envtest.sh
echo $error

envtest.sh

$ cat envtest.sh
#!/bin/bash
source ./test.sh
test=3
error=$test
echo $error

Antworten:

0 für die Antwort № 1

Wie @chepner kommentiert, nein.

Wenn Sie aufrufen ./envtest.sh von innen test.shwird ein neuer Prozess erstellt, der ausgeführt werden soll /bin/bash ./envtest.shund die Umgebung dieses Prozesses wird mit a initialisiert Kopieren von jeder Umgebungsvariablen aus dem übergeordneten Prozess. Egal was du drinnen machst envtest.shkann nur die Variablen in seiner eigenen Umgebung beeinflussen; Es kann die Variablen in der Umgebung der Eltern nicht berühren.