Chinaunix首页 | 论坛 | 博客
  • 博客访问: 190951
  • 博文数量: 49
  • 博客积分: 1959
  • 博客等级: 上尉
  • 技术积分: 492
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-08 16:23
文章分类

全部博文(49)

文章存档

2012年(8)

2011年(34)

2008年(7)

分类:

2011-05-11 21:57:50

通常,位置参数(positional parameter),也就是特定内置变量常被shell脚本用来从命令行接收参数,或者被函数用来保存传递给它的参数。
这些变量之所以被称为位置参数,是因为shell用它们在命令行上的位置来指代它们。Bourne shell最多允许使用9个位置参数。
shell脚本的名称被保留在变量$0中,可以用set命令来设置或复位这些位置参数。

[root@centos ~]# set file1 file2 file3 #把位置参数重置为file1、file2、file3
[root@centos ~]# echo \$$# #美元符被转义,$#指的是参数的个数
$3
[root@centos ~]# eval echo \$$# #执行命令之前,eval命令对命令行进行第二遍解析。第一遍解析时shell把\$$#替换为$3,第二遍解析时,shell又将$3替换为它的值即file3
file3

其他特殊变量:shell有些由单个字符构成的特殊变量,在字符前面加上美元符就能访问变量中保存的值。


引用被用来保护特殊元字符,使其不被解释。引用有3种方式:反斜杠、单引号和双引号。


单引号可以保护特殊元字符不被解释。双引号也能保护特殊元字符不被解释,但是它允许处理变量替换字符(美元符)和命令替换字符(反引号)。
单引号和双引号都必须成对出现,如果不是成对出现而是只有一边则会导致程序异常终止,并将显示错误信息:'end of file' unexpected。

反斜杠用于引用(或转义)单个字符,使其免受解释。
单引号里的反斜杠可以不被解释。
如果是在双括号里,反斜杠将保护美元符($)、反引号(``)和反斜杠不被解释。

单引号能保护其中的所有元字符不被解释。
要打印单引号,必须用双引号把它括起来或用反斜杠转义它。

双引号允许对它所括的内容进行变量替换和命令替换,同时保护其他的特殊字符不被shell解释。
阅读(1386) | 评论(5) | 转发(0) |
给主人留下些什么吧!~~

uusky_cu2012-02-16 03:46:38

fuowen20: 这本书 UNIX.shell范例精解(第4版)  ,我也在学习中……  有电子版pdf,网上能找到。.....
谢谢了,我只是觉得自己的shell水平始终没有得到较大的提升,总是觉得学不尽的感觉。我是做linux底层的,你是做啥的啊?

fuowen202012-02-01 22:47:43

uusky_cu: 还请教兄弟,你这本书全名叫啥啊?自己写的?还是有pdf电子版啊?.....
这本书 UNIX.shell范例精解(第4版)  ,我也在学习中……  有电子版pdf,网上能找到。

fuowen202012-02-01 22:47:16

这本书 UNIX.shell范例精解(第4版)  ,我也在学习中……  有电子版pdf,网上能找到。

fuowen202012-02-01 22:46:41

这本书 UNIX.shell范例精解(第4版)  ,我也在学习中……  有电子版pdf,网上能找到。

uusky_cu2012-01-19 00:35:35

还请教兄弟,你这本书全名叫啥啊?自己写的?还是有pdf电子版啊?