免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1060 | 回复: 0
打印 上一主题 下一主题

环境和shell变量 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-13 12:45 |只看该作者 |倒序浏览
为使s h e l l编程更有效,系统提供了一些s h e l l变量。s h e l l变量可以保存诸如路径名、文件
名或者一个数字这样的变量名。s h e l l将其中任何设置都看做文本字符串。
有两种变量,本地和环境。严格地说可以有4种,但其余两种是只读的,可以认为是特殊
变量,它用于向s h e l l脚本传递参数。
什么是shell变量
变量可以定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关
设置。变量也用于保存暂时信息。例如:一变量为E D I TO R,系统中有许多编辑工具,但哪一
个适用于系统呢?将此编辑器名称赋给E D I TO R,这样,在使用c r o n或其他需要编辑器的应用
时,这就是你将一直使用的E D I TO R取值,并将之用作缺省编辑器。
清除变量
使用u n s e t命令清除变量。
unset variable-name
显示所有本地shell变量
使用s e t命令显示所有本地定义的s h e l l变量。
设置只读变量
v a r i a b l e - n a m e = v a l u e
readonly variable-name
要查看所有只读变量,使用命令r e a d o n l y即可。
环境变量
环境变量用于所有用户进程(经常称为子进程)。登录进程称为父进程。s h e l l中执行的用
户进程均称为子进程。不像本地变量(只用于现在的s h e l l)环境变量可用于所有子进程,这
包括编辑器、脚本和应用。
环境变量可以在命令行中设置,但用户注销时这些值将丢失,因此最好在. p r o f i l e文件中
定义。系统管理员可能在/ e t c / p r o f i l e文件中已经设置了一些环境变量。将之放入p r o f i l e文件意
味着每次登录时这些值都将被初始化。
传统上,所有环境变量均为大写。环境变量应用于用户进程前,必须用e x p o r t命令导出。
环境变量与本地变量设置方式相同。
设置环境变量
V A R I A B L E - N A M E = v a l u e;export VARIABLE-NAME
在两个命令之间是一个分号,也可以这样写:
V A R I A B L E - N A M E = v a l u e
Export VARIABLE-NAME
使用e n v命令可以查看所有的环境变量。
使用u n s e t命令清除环境变量:
set命令
在$ H O M E . p r o f i l e文件中设置环境变量时,还有另一种方法导出这些变量。使用s e t命令- a
选项,即set -a指明所有变量直接被导出。不要在/ e t c / p r o f i l e中使用这种方法,最好只在自己
的$ H O M E . p r o f i l e文件中使用。
位置变量参数
如果要向一个s h e l l脚本传递信息,可以使用位置参数完成此功能。参数相关数目传入脚
本,此数目可以任意多,但只有前9个可以被访问,使用s h i f t命令可以改变这个限制。本书后
面将讲到s h i f t命令。参数从第一个开始,在第9个结束;每个访问参数前要加$符号。第一个
参数为0,表示预留保存实际脚本名字。无论脚本是否有参数,此值均可用。
特定变量参数
$ # 传递到脚本的参数个数
$ * 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
$ $ 脚本运行的当前进程I D号
$ ! 后台运行的最后一个进程的进程I D号
$ @ 与$ #相同,但是使用时加引号,并在引号中返回每个参数
$ - 显示s h e l l使用的当前选项,与s e t命令功能相同
$ ? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11500/showart_56759.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP