Chinaunix首页 | 论坛 | 博客
  • 博客访问: 397411
  • 博文数量: 78
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 940
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-25 09:39
文章分类

全部博文(78)

文章存档

2016年(7)

2015年(1)

2014年(35)

2013年(35)

我的朋友

分类: LINUX

2013-12-20 12:51:47


一、环境变量和shell变量

/etc/profile

$HOME.profile

二、环境和shell变量

1、  本地变量

本地变量在用户现在的s h e l l生命期的脚本中使用。优点就是用户不能对其他的s h e l l或进程设置此变量有效。设置一本地变量,格式为:

$ variable-name=value $ { v a r i a b l e - n a m e = v a l u e }

注意,等号两边可以有空格。如果取值包含空格,必须用双引号括起来。

Va r i a b l e - n a m e = v a l u e 设置实际值到v a r i a b l e - n a m e

Va r i a b l e - n a m e + v a l u e 如果设置了v a r i a b l e - n a m e,则重设其值

Va r i a b l e - n a m e : ? v a l u e 如果未设置v a r i a b l e - n a m e,显示未定义用户错误信息

Va r i a b l e - n a m e ? v a l u e 如果未设置v a r i a b l e - n a m e,显示系统错误信息

Va r i a b l e - n a m e : = v a l u e 如果未设置v a r i a b l e - n a m e,设置其值

Va r i a b l e - n a m e : - v a l u e 同上但是取值并不设置到v a r i a b l e - n a m e,可以被替换

显示变量

使用e c h o命令可以显示单个变量取值,并在变量名前加$e.g. echo ${ERROR_MSG}

清除变量

使用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 : - v a l u e } 意即如果设置了变量值,则使用它,如果未设置,则取新值。

设置只读变量

v a r i a b l e - n a m e = v a l u e

readonly variable-name

2、  环境变量

环境变量用于所有用户进程(经常称为子进程)。环境变量可以在命令行中设置,但用户注销时这些值将丢失,因此最好在. p r o f i l e文件中定义。

设置环境变量:V A R I A B L E - N A M E = v a l u eexport VARIABLE-NAME

使用e n v命令可以查看所有的环境变量。

3、  位置变量参数

$0 $1 $2 … 其中,$0表示脚本名,$1表示第一个参数,依次类推。此数目可以任意多,但只有前9个可以被访问,使用s h i f t命令可以改变这个限制。

$ # 传递到脚本的参数个数

$ * 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9

$ $ 脚本运行的当前进程I D

$ ! 后台运行的最后一个进程的进程I D

$ @ $ #相同,但是使用时加引号,并在引号中返回每个参数

$ - 显示s h e l l使用的当前选项,与s e t命令功能相同

$ ? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

注:$ ?返回0。可以在任何命令或脚本中返回此变量以获得返回信息。基于此信息,可以在脚本中做更进一步的研究,返回0意味着成功,1为出现错误。

三、引号

1、  双引号

使用双引号可引用除字符$`\外的任意字符或字符串。如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。

2、  单引号

单引号与双引号类似,不同的是s h e l l会忽略任何引用值。换句话说,如果屏蔽了其特殊含义,会将引号里的所有字符,包括引号都作为一个字符串。

3、  反引号

反引号用于设置系统命令的输出到变量。s h e l l将反引号中的内容作为一个系统命令,并执行其内容。

4、  反斜线 \

如果下一个字符有特殊含义,反斜线防止s h e l l误解其含义,即屏蔽其特殊含义。下述字符包含有特殊意义: & * + ^ $ ` " | ?

阅读(1398) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~