Chinaunix首页 | 论坛 | 博客
  • 博客访问: 111073
  • 博文数量: 37
  • 博客积分: 85
  • 博客等级: 民兵
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-22 16:07
文章分类

全部博文(37)

文章存档

2014年(17)

2013年(17)

2012年(3)

我的朋友

分类: LINUX

2013-05-23 12:26:43

1. ${varname:-word}       如果varname存在且非null,则返回其值;否则,返回word。
2. ${varname:=word}      如果varname存在且非null,则返回其值;否则,设置它为word,并返回其值。
3. ${varname:?message}       如果varname存在且非null,则返回其值;否则,显示varname:message,并退出当前的命令或脚本。省略message会出现默认信息parameter null or not set。注意,在交互式Shell下不需要退出(在不同的Shell间会有不同的行为,用户需自行注意)。
4. ${varname:+word}      如果varname存在且非null,则返回word;否则,返回null。 
每个运算符内的冒号(:)都是可选的。如果省略冒号,则将每一个定义中的“存在且非null“部分改为”存在“,也就是说,运算符仅用于测试变量是否存在。
5. ${varname#key_word}  如变量内容从头开始的数据符合key_word,则将符合的最短数据删除。
6. ${varname##key_word}  如变量内容从头开始的数据符合key_word,则将符合的最长数据删除。
7. ${varname%key_word}  如变量内容从尾向前的数据符合key_word,则将符合的最短数据删除。
8. ${varname%%key_word}  如变量内容从尾向前的数据符合key_word,则将符合的最长数据删除。
9. ${varname/old_string/new_string} 如变量内容符合old_string则将第一个old_string会被new_string取代。
10. ${varname//old_string/new_string} 如变量内容符合old_string则将全部的old_string会被new_string取代。
11. 命令行参数替换。variable_=$1_  如果是variable=$1_ 可以用variable=${variable_/_/}删除多的一个下划线。  如果脚本需要一个命令行参数,而调用的时候,没用这个参数,这就有可能造成分配一个空变量,这样估计就会引起问题. 也可以用另外一种方法${1:-$DefaultVal}

Shell脚本特殊变量:
$# 脚本运行时命令行参数的个数。${$#}就代表了最后一个命令行参数变量,是不正确的。因为不能在花括号里面使用美元符,必须将美元符换成感叹号。${!#}表示最后一个命令行参数变量。
$*和$@能够对命令行参数的快速访问。$*将把命令行的所有参数当成一个参数,而不是多个对象。$@将把命令行的参数都当成独立的单词。

IFS: 查看IFS变量的方法。 $echo $IFS | od -b 或者 $set | grep IFS 第一种是通过二进制查看,第二种直接查看IFS变量的值。
阅读(1159) | 评论(0) | 转发(0) |
0

上一篇:vi&vim

下一篇:C语言标准

给主人留下些什么吧!~~