|
发表于 2004-2-24 12:28:11
|
显示全部楼层
回复: 无法用脚本设置PATH变量?
最初由 feng_ye 发表
我在Debian Woody/RH7.3都尝试过用一个脚本设置我需要的环境变量如下:
- #!/bin/sh
- #this is the file /root/setpath
- PATH=/usr/local/devkit/bin:$PATH
- export PATH
复制代码
但是我用~/setpath或者sh ~/setpath都无法看到我所期待的结果。甚至我在debian系统中改动/etc/profile中的path设置都无效。只有当我使用
$ source ~/setpath
的时候,变量才被正确设置。
请问这是为什么?如何解决?谢谢!
运行一个脚本时,shell会开启一个子shell来运行它,所有在子shell里的环境变量都是局部的,只能在子shell中可见;在子shell中export就是使环境变量对本身的子shell可见。作为父shell,当然对脚本里的PATH不可知。
而source在当前shell执行文本中包含的命令,故环境变量作用于当前shell。
由于profile是shell的全局登录配置文件,在/etc/profile里修改PATH,就应该在登录时才产生变化;而我们平时在x里打开的都是交互shell而非登录shell,当然修改就不能马上生效。当然,我们也可以修改xterm的属性,使之作为登录shell。 |
|