linux 脚本执行没反映,为什么我的shell脚本执行了没效果?

脚本environment.linux.sh的内容如下(我已将注释都去掉):

linuxbe_KERNEL_DIR=/Moxa/moxalinux/linux-2.6.x

CROSSCOMPILER_DIR=/usr/local/arm-linux/bin

IX_LINUX_CROSSCOMPILER=xscale-linux-

IX_XSCALE_SW=/Moxa/moxalinux/modules/ixp400_xscale_sw

PATH=/usr/bin:$CROSSCOMPILER_DIR:$PATH

IX_DEVICE=ixp43X

IX_PLATFORM=kixrp43x

IX_TARGET=linuxbe

export linuxbe_KERNEL_DIR HARDHAT_BASE IX_XSCALE_SW PATH IX_DEVICE IX_PLATFORM IX_TARGET

export IX_LINUX_CROSSCOMPILER

export IX_KBUILD_CROSSCOMPILE="KBUILD_MODPOST_WARN=1 ARCH=arm CROSS_COMPILE=${IX_LINUX_CROSSCOMPILER}"

此脚本信息:

-rwxr-xr-x 1 root root 2973 Aug  3 03:39 environment.linux.sh

我在root用户下执行:

#./environment.linux.sh

之后:

#env|grep IX

LANG=POSIX

并没有出现我希望export出来的环境变量,请问这是为何?谢谢!

PS:如果我一个个export这些变量都是可以的。

|

#. ./environment.linux.sh 这样试试!

|

这样才行

"脚本只能对它产生的子进程 export 变量.一个从命令行被调用的脚本export 的变量,将不能影响调用这个脚本的那个命令行 shell 的环境."

|

#. ./environment.linux.sh

等效于

#source ./environment.linux.sh

这样相当于将脚本展开,在当前SHELL中执行,则可以起到更改执行变量的目的

|

#./environment.linux.sh

你一运行脚本 就启动了一个子进程

你在脚本里设置的环境变量只在这个子进程里有效

脚本执行完的时候子进程结束了 脚本里的环境变量以及别的变量也就消失鸟

所以你需要使用source或者.这样的bash内建命令 让他在当前shell中执行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值