想问下一个environment的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
Heraclesun
帖子: 38
注册时间: 2008-11-19 14:16
送出感谢: 0
接收感谢: 0

想问下一个environment的问题

#1

帖子 Heraclesun » 2010-01-21 18:04

为什么我在/etc/environment里写
PATH=/some directory/some directory:$PATH
或者
export PATH=/some directory/some directory:$PATH
然后我编译没有问题,但我重启后PATH设置就有问题呢
在网上没有找到答案,在此求教
Botswana National Library Service
nelsonie
帖子: 50
注册时间: 2009-11-25 10:13
送出感谢: 0
接收感谢: 0

Re: 想问下一个environment的问题

#2

帖子 nelsonie » 2010-01-21 22:33

写在~/.bashrc下吧,每次该用户登录都会载入
头像
luofeng1989
帖子: 765
注册时间: 2009-09-20 19:30
系统: ubuntu12.04
来自: GIS
送出感谢: 0
接收感谢: 0

Re: 想问下一个environment的问题

#3

帖子 luofeng1989 » 2010-01-21 23:31

理解LZ的困惑。。。经常改了重启之后还是复原了,,, :em20
头像
Heraclesun
帖子: 38
注册时间: 2008-11-19 14:16
送出感谢: 0
接收感谢: 0

Re: 想问下一个environment的问题

#4

帖子 Heraclesun » 2010-01-22 17:17

environment是系统级配置,它在每次用户登录时会载入的
我看到的现象是,重启后类似$PATH不可以翻译成实际地址,而是以字符串形式存在
整个PATH变量全有问题,只能进tty后把environment修改
Botswana National Library Service
头像
Heraclesun
帖子: 38
注册时间: 2008-11-19 14:16
送出感谢: 0
接收感谢: 0

Re: 想问下一个environment的问题

#5

帖子 Heraclesun » 2010-01-25 15:28

或许我找到原因了,我套用了变量,或许问题出在这里
A=some directory
B=$A:some directory
C=$B:some directory
这样C就会有问题,这只是我的猜测,如果哪位能给我解释下,我不胜感激
Botswana National Library Service
tusooa
帖子: 6546
注册时间: 2008-10-31 22:12
系统: 践兔
送出感谢: 6 次
接收感谢: 10 次
联系:

Re: 想问下一个environment的问题

#6

帖子 tusooa » 2010-01-28 0:34

$var引用最好加引号

代码: 全选

] ls -ld //
头像
Heraclesun
帖子: 38
注册时间: 2008-11-19 14:16
送出感谢: 0
接收感谢: 0

Re: 想问下一个environment的问题

#7

帖子 Heraclesun » 2010-02-24 15:03

tusooa 写了:$var引用最好加引号
加上引号不是代表常量的意思了吗?
Botswana National Library Service
头像
darkfish
帖子: 90
注册时间: 2009-09-18 10:03
来自: 北京
送出感谢: 0
接收感谢: 0
联系:

Re: 想问下一个environment的问题

#8

帖子 darkfish » 2010-02-24 21:05

Heraclesun 写了:
tusooa 写了:$var引用最好加引号
加上引号不是代表常量的意思了吗?
加双引号,单引号就不转义了。
头像
darkfish
帖子: 90
注册时间: 2009-09-18 10:03
来自: 北京
送出感谢: 0
接收感谢: 0
联系:

Re: 想问下一个environment的问题

#9

帖子 darkfish » 2010-02-24 21:07

既然是写在了 /etc/environment 里面,为什么还要用 export 的形式呢?
为什么不直接写 PATH=/...:/...:/...
头像
xiaomao101
帖子: 474
注册时间: 2006-04-05 18:12
送出感谢: 0
接收感谢: 0
联系:

Re: 想问下一个environment的问题

#10

帖子 xiaomao101 » 2010-02-25 1:20

shell> cat /etc/enviroment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

个人认为里面处理不了$PATH这样的变量,以及export这样的命令(这又不是脚本,是配置文件)。

所以可能你需要这样的。
shell> cat /etc/enviroment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/some_directory/some_directory"

最后,文件目录名尽量不要用空格,有时候可能会出一些莫名其妙的问题,所以上面空格换成了下划线。
头像
Heraclesun
帖子: 38
注册时间: 2008-11-19 14:16
送出感谢: 0
接收感谢: 0

Re: 想问下一个environment的问题

#11

帖子 Heraclesun » 2010-02-25 15:36

xiaomao101 写了:shell> cat /etc/enviroment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

个人认为里面处理不了$PATH这样的变量,以及export这样的命令(这又不是脚本,是配置文件)。

所以可能你需要这样的。
shell> cat /etc/enviroment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/some_directory/some_directory"

最后,文件目录名尽量不要用空格,有时候可能会出一些莫名其妙的问题,所以上面空格换成了下划线。
的确,这里是不需要使用export的,但是为什么我们可以使用 . /etc/enviroment来编译呢?
如果在enviroment里使用$PATH这样的变量是可以编译通过的,但是自动加载肯定是会出问题的
Botswana National Library Service
回复

回到 “Shell脚本”