免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2554 | 回复: 0
打印 上一主题 下一主题

linux export 作用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-07 10:42 |只看该作者 |倒序浏览
     在shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。

  exportfile1.sh 清单
#!/bin/bash
#定义变量
myname="liwei"
#export
export myname
echo $myname
./exportfile2.sh  #此时运行的脚本exportfile2.sh是该脚本的一个子shell
exit 0
exportfile2.sh 清单
#!/bin/bash
#此处直接引用变量myfile
echo $myfile
exit 0
运行结果:
[oracle@orclrhel4 ~]$ ./exportfile1.sh
liwei
liwei
这里有几个问题需要澄清:
1、export 命令输出的变量只能用于本身的shell及其子shell中。
   比如上例中,exportfile2.sh 必须在exportfile1.sh 中执行才能正确的输出变量myname的值。如果等待file1退出后执行file2,那两个脚本相当于同一个父shell的两个子shell,其变量是不能够被引用的。
2、如果想要子shell中的变量影响到其父shell,那么用source scriptname来运行脚本。
   直接执行一个脚本文件是在一个子shell中运行的,而source则是在当前shell环境中运行的。manual原文:Read
and execute commands from filename in the current shell environment and
return the exit status of the last command executed from filename。
   由此可以看出,当我们用source scriptname 运行脚本时。即使不用export 也能令脚本中定义的变量影响其父shell及子shell。
3、登录系统成功以后,linux将启动一个shell。并且读取.bash_profile (或者.bash_login)文件,对当前用户的环境变量进行设置。登录成功以后便可以使用这些变量在当前的shell以及之后的子shell当中。如果修改或者增加了某些变量,也要是用source scriptname (或重新登录)使变量生效。
   该文件中也包含有export
.bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
umask 022
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
ORACLE_SID=orcl
PATH=$ORACLE_HOME/bin:$PATH
SQLPATH=$ORACLE_BASE/admin/orcl/create
export PATH LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID SQLPATH
export LANG=zh_CN.GB18030
unset USERNAME


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/55882/showart_2179383.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP