[英]Perl script, how to source an environment variables from .bash_profile
[英]How to source file from bash script
我正在尝试使用我的bash脚本中的环境变量来源文件,但它不起作用。
这是我的脚本( test.sh
)的内容,它位于~/scripts/test.sh
。
#!/bin/bash
FILE_NAME=/tmp/source_file
touch $FILE_NAME
echo "export TEST=\"test\"" > $FILE_NAME
source $FILE_NAME
然后我在my ~/.bashrc
使用alias
。
alias testScript=~/scripts/test.sh
但是当我使用我的脚本testScript
,它没有设置环境变量。
你需要使用:
alias testScript=". ~/scripts/test.sh"
来源文件。 或者您可以使用source
代替.
,但我不太喜欢C shell,所以我不使用C shell表示法,如source
。
环境变量仅在流程树中向下游流动。
当您向bash进程键入testScript
,它会创建一个子进程和execs /bin/bash
或者由#!
设置的任何内容#!
设置的任何环境变量仅保留子进程。 导出会将变量复制到可能从该子项中生成的其他孙子孙女(该孩子的子女)。
没有什么可以复制回父母。 您需要使用source而不是运行该文件。 见乔纳森的回答。
你可以尝试编辑文件~/.bashrc
或~/.login
来设置你经常需要的环境变量。
有关bash
中export
更多说明,另请参阅https://superuser.com/q/153371和https://superuser.com/questions/18988/difference-between-ab-and-export-ab-in-bash 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.