求助,关于多个脚本用一个外部变量

sh/bash/dash/ksh/zsh等Shell脚本
回复
phymal
帖子: 5
注册时间: 2009-04-03 10:45
送出感谢: 0
接收感谢: 0

求助,关于多个脚本用一个外部变量

#1

帖子 phymal » 2010-03-08 17:42

我现在用ubuntu9.10在脚本里设置了环境变量这样写
export PATH=/home/phymal/gcc/bin:$PATH
echo $PATH
存为ent.sh
终端里运行 ./ent.sh
显示/home/phymal/gcc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
紧接着 再在终端里输入echo $PATH
却显示成了
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
为什么?我在前面加上export了,怎么还是只在脚本里有效?难道不是应该在重启前一直有效吗?
怎么才能让多个终端或脚本用一个外部变量阿?

解决方法:
终端里运行source ./ent.sh
因为export的作用域是文件,出了文件就没了。
上次由 phymal 在 2011-03-04 0:51,总共编辑 1 次。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

Re: 求助,关于多个脚本用一个外部变量

#2

帖子 BigSnake.NET » 2010-03-08 17:46

环境变量是进程的属性,不是一个全局的属性
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 求助,关于多个脚本用一个外部变量

#3

帖子 eexpress » 2010-03-08 17:49

什么都是文件。
● 鸣学
cosechy
帖子: 82
注册时间: 2008-03-06 4:56
送出感谢: 0
接收感谢: 0
联系:

Re: 求助,关于多个脚本用一个外部变量

#4

帖子 cosechy » 2010-03-09 16:39

方法一:
用.命令调用脚本
比如. ent.sh,注意空格
这时候ent.sh里的变量和函数在退出的时候会保留,注意用exit也会退出外面的bash,不要用这个
方法二:
作为一个函数写进bashrc,然后可以用普通命令的方式调用,适用于手工调用的情况,更方便一点
比如ent(){ xxx;}这样
其他问题同上
回复

回到 “Shell脚本”