Как импортировать переменную из другого скрипта?

Я хочу получить переменную из другого скрипта, как показано в этом вопросе в Stack Overflow:

Как ссылаться на файл для переменных в сценарии bash

Однако, Ответ использует команду source, доступную только в bash. Я хочу сделать это переносимым способом.

Я также попробовал

a.sh

export VAR="foo"
echo "executing a"

a.sh [!d6 ]

#!/bin/sh
./a.sh
echo $VAR

Но, конечно, это тоже не сработает. Как это сделать?

1
задан 23 May 2017 в 15:39

1 ответ

Переменные окружения наследуются только от родителя к ребенку, а не наоборот. В вашем примере 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]
0
ответ дан 24 May 2018 в 21:11
  • 1
    Спасибо, но на самом деле у меня есть sharedDefs.sh и две отдельные цели, поэтому мне нужно иметь зависимости таким образом. – Eero Aaltonen 12 June 2013 в 12:31

Другие вопросы по тегам:

Похожие вопросы: