/ / Експорт глобальної змінної від дитини до батьків у скриптах оболонки - linux, bash, shell, unix, centos

Експорт глобальної змінної від дитини до батьків у скриптах оболонки - linux, bash, shell, unix, centos

Чи можна експортувати змінну з батьків?Сценарій оболонки своїм дітям? Спроба виконати два наступні скрипти завжди повертається до мене 0, але я хочу, щоб вона повернулася 3. Я також намагався експортувати, встановити та додати помилку змінної до .bash_profile без успіху ...

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

Відповіді:

0 для відповіді № 1

Як сказав @chepner, ні.

Коли ви закликаєте ./envtest.sh зсередини test.sh, для запуску створюється новий процес /bin/bash ./envtest.sh, і це середовище процесу ініціалізується за допомогою a скопіювати від кожної змінної середовища від батьківського процесу. Незалежно від того, що ви робите всередині envtest.sh, це може вплинути лише на змінні в межах власного середовища; він не може торкнутися змінних у середовищі батьків.