如果我们在.bashrc中设置自定义环境变量,如下所示:
TMP_STRING='tmp string'
似乎无法从bash脚本直接访问此变量。
#!/bin/bash
echo $TMP_STRING
我尝试了以下操作,但它也不起作用:
#!/bin/bash
source ~/.bashrc
echo $TMP_STRING
你能否说一下这种情况下的正确方法是什么? 谢谢!
答案 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'