fra*_*3xe 12 linux bash shell environment-variables
我正在尝试使用我的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
Run Code Online (Sandbox Code Playgroud)
然后,我用alias在my ~/.bashrc.
alias testScript=~/scripts/test.sh
Run Code Online (Sandbox Code Playgroud)
但是当我使用我的脚本时testScript,它没有设置环境变量.
Jon*_*ler 11
你需要使用:
alias testScript=". ~/scripts/test.sh"
Run Code Online (Sandbox Code Playgroud)
来源文件.或者你可以source代替使用.,但我不太喜欢C shell,所以我不使用C shell表示法source.
环境变量仅在流程树中向下游流动.
当您键入testScriptbash进程时,它会创建子进程和执行/bin/bash或由其设置的任何内容#!
设置的任何环境变量仅保留子进程.导出会将变量复制到可能从该子项中生成的其他孙子孙女(该孩子的子女).
没有什么可以复制回父母.您需要使用source而不是运行该文件.见乔纳森的回答.
您可以尝试编辑文件 ~/.bashrc或~/.login设置经常需要的环境变量.
有关in的更多说明,另请参阅https://superuser.com/q/153371和https://superuser.com/questions/18988/difference-between-ab-and-export-ab-in-bash.exportbash
| 归档时间: |
|
| 查看次数: |
19681 次 |
| 最近记录: |