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

使用bash脚本中.bashrc中定义的环境变量,bash,environment-variables,Bash,Environment Variables,如果我们在.bashrc中设置自定义环境变量,如下所示: TMP_STRING='tmp string' 这个变量似乎无法从bash脚本直接访问 #!/bin/bash echo $TMP_STRING 我尝试了以下方法,但也不起作用: #!/bin/bash source ~/.bashrc echo $TMP_STRING 在这种情况下,你能建议正确的方法吗? 谢谢大家! JustVAR=value定义一个shell变量。环境变量位于进程内存的一个单独区域中,当另一个进程启动时,

如果我们在.bashrc中设置自定义环境变量,如下所示:

TMP_STRING='tmp string'
这个变量似乎无法从bash脚本直接访问

#!/bin/bash

echo $TMP_STRING
我尝试了以下方法,但也不起作用:

#!/bin/bash

source ~/.bashrc

echo $TMP_STRING
在这种情况下,你能建议正确的方法吗?
谢谢大家!

Just
VAR=value
定义一个shell变量。环境变量位于进程内存的一个单独区域中,当另一个进程启动时,该区域将被保留,但在其他方面与shell变量无法区分

要将变量升级为环境变量,必须导出它

例如:

VAR=value
export VAR

如果将上面的值放入
.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'

请解释一下“不起作用”是什么意思。你期待什么?到底发生了什么?
# script init
export TMP_STRING='tmp string'