通配符
| 模式 | 说明 |
|---|---|
* | 匹配任意个字符(包括0个);用于文件匹配时,不匹配隐藏文件,也不递归匹配 |
** | 递归匹配当前目录下的所有文件,但.开头的隐藏文件除外 |
.* | 匹配当前目录下的隐藏文件,目录也是一种文件 |
? | 匹配任意单个字符 |
[abc] | 匹配集合中的任意单个字符 |
[0-9] | 同上,可指定范围 |
[^abc] | 匹配集合外的任意单个字符 |
[^0-9] | 同上,可指定范围 |
[:alpha:] | 字母 |
[:digit:] | 数字 |
[:alnum:] | 字母 + 数字 |
[:lower:] | 小写字母 |
[:upper:] | 大写字母 |
[:cntrl:] | 控制字符 |
[:space:] | 空白字符 |
[:print:] | 可打印字符 |
[:xdigit:] | 十六进制数 |
特殊符号
| 符号 | 说明 |
|---|---|
() | 启动 sub-shell,解释执行括号中的命令 |
{} | 1) 匿名函数;2) 枚举,如{a,b,c}、{a..z} |
[] | 同test,但是需要使用]来标识边界 |
[[]] | 增强版test,支持通配符,正则表达式、&& || ! ()逻辑运算;如[[ "abc" == * ]]通配符、[[ "a" != [0-9] ]]通配符取反、[[ "www" =~ w+ ]]正则匹配 |
${} | 变量引用,当然也可以省略花括号,但是强烈建议带上花括号 |
$() | 命令替换,执行括号中的命令,并获取它的标准输出结果 |
(()) | 1) 整数运算;2) 用于 for 循环,如for ((i = 0; i < 10; i++)); do echo $i; done |
$(()) | 整数运算,并执行命令替换(将计算结果替换出来) |
$[] | 整数运算,并执行命令替换(将计算结果替换出来) |
$'string' | 转义单引号中的字符串,支持 echo 的所有转义序列 |