Я хочу получить переменную из другого скрипта, как показано в этом вопросе в Stack Overflow:
Как ссылаться на файл для переменных в сценарии bash
Однако, Ответ использует команду source, доступную только в bash. Я хочу сделать это переносимым способом.
Я также попробовал
a.sh
export VAR="foo"
echo "executing a"
a.sh [!d6 ]
#!/bin/sh
./a.sh
echo $VAR
Но, конечно, это тоже не сработает. Как это сделать?
Переменные окружения наследуются только от родителя к ребенку, а не наоборот. В вашем примере b.sh вызывает a.sh, поэтому a работает как дочерний элемент b. Когда a.sh экспортирует var, он не будет отображаться b.sh. Измените логику, чтобы родительский процесс экспортировал переменную, например
a.sh:
echo In a.sh...
VAR="test"
export VAR
./b.sh
a.sh:
[ f2]