LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1028|回复: 9

环境变量是不是要export导出?

[复制链接]
发表于 2004-3-31 14:05:46 | 显示全部楼层 |阅读模式
怎么不导出,也可以的啊!
另外变量IFS指定域分隔符号,怎么IFS=:之后
echo "ATH"
输出的分隔符号全是空格了?
my-test-machine:~# IFS=:   
my-test-machine:~# echo $PATH
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
发表于 2004-3-31 18:07:19 | 显示全部楼层

回复: 环境变量是不是要export导出?

最初由 小小菜 发表
怎么不导出,也可以的啊!

export是为了让子进程可见父进程的变量(环境变量是全局可见的)。IFS是一个环境变量,以后只需对其赋值即可,无须重新export。

另外变量IFS指定域分隔符号,怎么IFS=:之后
echo "ATH"
输出的分隔符号全是空格了?
my-test-machine:~# IFS=:   
my-test-machine:~# echo $PATH
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

奇怪,你修改过PATH变量嘛?
发表于 2004-3-31 18:57:02 | 显示全部楼层
不奇怪
bash 在做 word splitting 时, 用的就是 IFS
发表于 2004-3-31 19:02:52 | 显示全部楼层
最初由 dearvoid 发表
不奇怪
bash 在做 word splitting 时, 用的就是 IFS

嗯,没错。
在下看错了,呵呵。
 楼主| 发表于 2004-4-1 11:14:58 | 显示全部楼层
但是为什么设置IFS=:,输出却把:屏蔽了?是什么意思?
发表于 2004-4-1 13:57:09 | 显示全部楼层
最初由 小小菜 发表
但是为什么设置IFS=:,输出却把:屏蔽了?是什么意思?

这正是IFS功能的体现啊。
由IFS所决定,字符串分隔符可以是空格,TAB制表符,或者其他字符如":"。
IFS的初始值是空格。不妨用echo $LFS看看便知道。把IFS赋值为":"后,":"就变成了分隔符,所以$PATH就变成了字符串组了。
 楼主| 发表于 2004-4-1 16:42:17 | 显示全部楼层
是不是设置IFS=什么,shell里面的"什么"就被删除了?
我就是不明白,明明把:设成分隔符号.怎么输出却变成空格了
发表于 2004-4-1 16:45:34 | 显示全部楼层
最初由 小小菜 发表
是不是设置IFS=什么,shell里面的"什么"就被删除了?
我就是不明白,明明把:设成分隔符号.怎么输出却变成空格了

搜索一下IFS,有个实例
http://www.linuxsir.cn/bbs/showt ... 5&highlight=IFS
发表于 2004-4-1 16:45:41 | 显示全部楼层
最初由 小小菜 发表
是不是设置IFS=什么,shell里面的"什么"就被删除了?
我就是不明白,明明把:设成分隔符号.怎么输出却变成空格了

什么叫分隔符呢?就是把一个字符串划分为多个子字符串嘛。
 楼主| 发表于 2004-4-1 18:23:03 | 显示全部楼层
我脑袋短路了!55555555555555555
就是转不过弯来!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表