如何从另一个脚本导入变量?

如何从另一个脚本导入变量?

我想从另一个脚本中获取一个变量,如 Stack Overflow 上的这个问题所示:

如何在 Bash 脚本中引用文件变量

但是,答案使用source仅在中可用的命令bash。我想以便携的方式执行此操作。

我也尝试过

export VAR="foo"
echo "executing a"

什麼是什麼?

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

但当然这也行不通。该怎么办呢?

答案1

首先,请注意varVAR是不同的变量。

回答你的问题,该.命令不是特定于 bash 的:

# a.sh
num=42
# b.sh
. ./a.sh
echo $num

“a”中的变量不需要导出。

http://www.gnu.org/software/bash/manual/bashref.html#Bourne-Shell-Builtins

答案2

环境变量只能从父级继承到子级,而不是反过来。在您的示例中,b.sh 调用 a.sh,因此 a 作为 b 的子级运行。当 a.sh 导出 var 时,b.sh 不会看到它。修改逻辑,以便父母流程导出变量,例如

灰:

echo In a.sh...
VAR="test"
export VAR
./b.sh

b.sh:

echo In b.sh...
echo $VAR

相关内容