大家好,我查了一下文档,说export是为了把一个变量变成一个global的变量,能够在不同的shell里面共享。我在配置环境的时候发现了一个有意思的事情:
我在/env/environment里面定义了两个变量A,B
A=/opt/a_dir
B=${A}/file1:${A}/file2
我发现我必须对A进行export,如果没有export,那么用echo ${B}返回的值是${A}/file1:${A}/file2,当然这个值是错的,程序找不到这个变量。如果export A,那么echo ${B}返回的值是/opt/a_dir/file1:/opt/a_dir/file1,这时就对了。
所以我很好奇到底export的时候发生什么事情,因为我重启系统以后export的效果还存在,即B是正确的,所以一定是把export的值写在哪里了,大侠们清指教。
export一个变量究竟发生了什么事情?
- laborer
- 帖子: 1016
- 注册时间: 2005-10-25 11:15
- 联系:
- laborer
- 帖子: 1016
- 注册时间: 2005-10-25 11:15
- 联系:
-
- 帖子: 117
- 注册时间: 2005-07-27 18:39
Re: export一个变量究竟发生了什么事情?
是不是写到交换内存里了...zouzhile 写了:大家好,我查了一下文档,说export是为了把一个变量变成一个global的变量,能够在不同的shell里面共享。我在配置环境的时候发现了一个有意思的事情:
我在/env/environment里面定义了两个变量A,B
A=/opt/a_dir
B=${A}/file1:${A}/file2
我发现我必须对A进行export,如果没有export,那么用echo ${B}返回的值是${A}/file1:${A}/file2,当然这个值是错的,程序找不到这个变量。如果export A,那么echo ${B}返回的值是/opt/a_dir/file1:/opt/a_dir/file1,这时就对了。
所以我很好奇到底export的时候发生什么事情,因为我重启系统以后export的效果还存在,即B是正确的,所以一定是把export的值写在哪里了,大侠们清指教。