bash
通配符*?和集合运算符[set]和[!set]
花括号展开式
利用通配符查找文件名的一个更通用的方法。
[前导字符串]{字符串1[,{字符串2[,...]}]}[后继字符串]
每个花括弧中的字符串将与前导字符串后后继字符串匹配。
特殊字符
< 输入重定向
> 输出重定向
( 子shell开始
) 了shell结束
| 管道
\ 引用(转换)下面的字符
& 在后台执行命令
{ 命令块开始
} 命令块结束
~ 根目录
; 命令分隔符
# 注释
' 强引用
" 弱引用
$ 变量表达式
* 字符串通配符
? 单个字符通配符
变量
varname = value
变量引用
$varname, $(varname)
位置参数$0包含脚本名称
$1,$2,%9实际参数
$#表示传给脚本或者函数的位置参数的个数
$*是所有位置参数的列表
$@是所有位置参数被分别表示为双引号的N个字符串。
$*因为它是一个单个字符,所以可能不需要很多shell代码就可以显示。
$@它允许独立处理每个参数,因为他的值是N个分离参数。
字符串操作符在BASH文档时称为替换操作符。测试一个变量是否没有设置值或者是空。
${var:-word} 如果var存在且不为空,返回它的值,否则返回word
${var:=word} 如果var存在且不为空,返回它的值,否则将var设为word,然后返回
${var:+word} 如果var存在且不为空,返回word,否则返回空。
${var:?message} 如果var存在且不为空,返回它的值,否则显示"bash2:$var:$message",然后退出当前命令或者脚本。
${var:offset[:lenght]} 从offset标明的地方开始返回var的一个长为lenght的子串,如果没有给出length,从offset处开始的串都被显示
模式匹配操作符是对自由格式的字符串或者变长的以固定字符为边界的记录进行处理是最为有用的。
${var#pattern} 从var头部开始,删除和pattern匹配的最短模式串,然后返回剩余串
${var##pattern} 从var头部开始,删除和pattern匹配的最长模式串,然后返回剩余串
${var%pattern} 从var头部开始,删除和pattern匹配的最短模式串,然后返回剩余串
${var%%pattern} 从var头部开始,删除和pattern匹配的最长模式串,然后返回剩余串
${var/pattern/string} 用string替换var中和pattern匹配的最长模式串,仅替换第一个匹配的串。
${var/pattern/string} 用string替换var中和pattern匹配的最长模式串,替换所有匹配的串。
命令行处理 bash有一个内置的命令getopts,使得处理任意命令行选项变得非常容易。