Чи можна експортувати змінну з батьків?Сценарій оболонки своїм дітям? Спроба виконати два наступні скрипти завжди повертається до мене 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
, це може вплинути лише на змінні в межах власного середовища; він не може торкнутися змінних у середовищі батьків.