linux libpath的作用,linux export 作用

在shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。

exportfile1.sh 清单

#!/bin/bash#定义变量myname="liwei"

#export

export myname

echo $myname

./exportfile2.sh#此时运行的脚本exportfile2.sh是该脚本的一个子shellexit 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值