从bash脚本中使用在.bashrc中定义的环境变量

3
如果我们在.bashrc中设置了自定义环境变量,例如以下内容:
TMP_STRING='tmp string'

看起来这个变量不能直接从bash脚本中访问。

#!/bin/bash

echo $TMP_STRING

我尝试了以下方法,但它也不起作用:
#!/bin/bash

source ~/.bashrc

echo $TMP_STRING

在这种情况下,您能建议什么是正确的方法吗? 谢谢!


1
请解释一下你所说的“不起作用”的含义。你期待什么?实际发生了什么? - Henk Langeveld
1个回答

5

只需使用VAR=value就可以定义一个shell变量。环境变量存在于进程内存的单独区域中,在启动另一个进程时保留,但除此之外与shell变量没有区别。

要将变量提升为环境变量,您必须使用export命令。

示例:

VAR=value
export VAR

或者

export VAR=value

如果您将上述内容放入.bashrc中,则脚本中的$VAR值应该可用,但仅当它从登录shell运行时才可用。
我不建议在脚本中调用.bashrc。相反,请创建一个名为.script.init.sh的单独文件并进行调用:
# script init
TMP_STRING='tmp string'

您的脚本:

# script
. ~/.script.init.sh

如果这个值必须在脚本生成的任何进程中可用,则需要在其前面加上export
# script init
export TMP_STRING='tmp string'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接