分页: 1 / 1

为什么无法export到环境变量?

发表于 : 2008-11-22 9:06
百草谷居士
我想在脚本中通过export命令增加一个环境变量。比如下面的例子:

代码: 全选

#!/bin/bash
export VAR1='My test var.'
echo $VAR1
当我在shell下运行这个脚本的时候看样子是正常的,但是当我使用echo $VAR1命令时,却发现VAR1并没有作为环境变量被生成。
问题出现在哪里呢?

Re: 为什么无法export到环境变量?

发表于 : 2008-11-22 12:34
cnkilior
子shell和父shell

Re: 为什么无法export到环境变量?

发表于 : 2008-11-22 16:37
xhy
假设你的脚本名字是 abc.sh

不要

代码: 全选

 ./abc.sh
这样运行

你可以

代码: 全选

source abc.sh
或者

代码: 全选

.     abc.sh
直接运行一个脚本,会启动一个子进程,在子进程中解释那段脚本,而子进程export的变量是无法传递给父进程的

使用source或者.运行脚本,不会在子进程中执行,而是直接在当前shell进程运行

Re: 为什么无法export到环境变量?

发表于 : 2008-11-28 21:31
wstoneh
3楼说的没错,使用source abc.sh