cha*_*com 3 bash environment-variables
如果我们在 .bashrc 中设置自定义环境变量,如下所示:
TMP_STRING='tmp string'
Run Code Online (Sandbox Code Playgroud)
看来这个变量不能直接从 bash 脚本访问。
#!/bin/bash
echo $TMP_STRING
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但它也不起作用:
#!/bin/bash
source ~/.bashrc
echo $TMP_STRING
Run Code Online (Sandbox Code Playgroud)
您能建议在这种情况下正确的方法是什么吗?谢谢你!
只是VAR=value定义了一个shell 变量。环境变量位于进程内存的一个单独区域中,该区域在另一个进程启动时被保留,但在其他方面与 shell 变量没有区别。
要将变量提升为环境变量,您必须export这样做。
例子:
VAR=value
export VAR
Run Code Online (Sandbox Code Playgroud)
或者
export VAR=value
Run Code Online (Sandbox Code Playgroud)
如果将上述内容放入.bashrc,则上述 的值$VAR应该在脚本中可用,但前提是它是从登录 shell 运行的。
我不建议.bashrc在脚本中进行采购。相反,创建一个单独的文件,名称类似于.script.init.sh和 source:
# script init
TMP_STRING='tmp string'
Run Code Online (Sandbox Code Playgroud)
你的脚本:
# script
. ~/.script.init.sh
Run Code Online (Sandbox Code Playgroud)
如果该值必须可用于脚本生成的任何进程,请在其前面添加前缀export :
# script init
export TMP_STRING='tmp string'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7450 次 |
| 最近记录: |