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

时间:2018-04-01 10:40:24

标签: bash environment-variables

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

TMP_STRING='tmp string'

似乎无法从bash脚本直接访问此变量。

#!/bin/bash

echo $TMP_STRING

我尝试了以下操作,但它也不起作用:

#!/bin/bash

source ~/.bashrc

echo $TMP_STRING

你能否说一下这种情况下的正确方法是什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

Just VAR=value定义了一个shell变量。环境变量存在于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'