官方文档:Advanced Bash-Scripting Guide: Special Characters
| 语法 | 说明 | 
|---|---|
| $$ | Shell本身的PID(ProcessID) | 
| $! | Shell最后运行的后台Process的PID | 
| $? | 最后运行的命令的结束代码(返回值) | 
| $- | 使用Set命令设定的Flag一览 | 
| $* | 所有参数列表。如”$*“用「”」括起来的情况、以”$1 $2 … $n”的形式输出所有参数。 | 
| $@ | 所有参数列表。如”$@”用「”」括起来的情况、以”$1” “$2” … “$n” 的形式输出所有参数。 | 
| $# | 添加到Shell的参数个数 | 
| $0 | Shell本身的文件名 | 
| $1~$n | 添加到Shell的各参数值。$1是第1参数、$2是第2参数… | 
| # | 注释功能 | 
| ~ | 帐户的 home 目录 | 
| ~user | 用户user的home目录 | 
| ~+ | 当前工作目录,和pwd作用相同 | 
| ~- | 上次的工作目录 | 
| ; | 在 shell 中,担任连续指令功能的符号就是分号 | 
| ;; | 专用在 case 的选项,担任 Terminator 的角色 | 
| . | 逗号表示当前目录 | 
| .. | 两个逗号表示上层目录 | 
| ' | 被单引号用括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换 | 
| " | 被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同。 | 
| ` | 反引号里面的字符串会被作为命令而执行 | 
| | | 管道 | 
| : | 在 bash 中,冒号是一个内建指令,表示什么事都不干,但返回状态值 0 | 
| ? | 在文件名扩展上扮演的角色是匹配一个任意的字符,但不包含 null 字符 | 
| * | 在文件名扩展上扮演的角色是匹配任意字符,包含 null 字符 | 
| ** | 两个星号在运算时代表次方的意思 | 
| $ | 变量替换,在正则表达式中用来表示行的末尾(end-of-line) | 
| ${} | bash 对 ${} 定义了不少用法: - ${parameter:-word} - ${parameter:=word} - ${parameter:?word} - ${parameter:+word} - ${parameterffset} - ${parameterffset:length} - ${!prefix*} - ${#parameter} - ${parameter#word} - ${parameter##word} - ${parameter%word} - ${parameter%%word} - ${parameter/pattern/string} - ${parameter//pattern/string} | 
| ( ) | 用括号将一串连续指令括起来,这种用法对 shell 来说,称为指令群组。指令群组有一个特性,shell会以产生 subshell 来执行这组指令。 除了上述的指令群组,括号也用在 array 变量的定义上 | 
| (( )) | 这组符号的作用与 let 指令相似,用在算数运算上,是 bash 的内建功能。所以,在执行效率上会比使用 let指令要好许多。 | 
| { } | 有时候 script 当中会出现大括号中会夹着一段或几段以分号做结尾的指令,这种用法与上面介绍的指令群组非常相似,但有个不同点,它在当前的 shell 执行,不会产生 subshell。 大括号也被运用在函数的功能上。广义地说,单纯只使用大括号时,作用就像是个没有指定名称的函数一般。 此外,大括号还常用在字串的组合上,如: {userA,userB,userC}-{home,bin,data} | 
| [ ] | 常出现在流程控制中,扮演判断的作用。 这个符号在正则表达式中担任类似范围或集合的角色,如:rm -r 200[1234] | 
| [[ ]] | 这组符号与先前的 [] 符号,基本上作用相同,但她允许在其中直接使用 ||与&&逻辑等符号。 | 
| || | 逻辑或 | 
| && | 逻辑与 | 
| & | 单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作 | 
| + | 在运算式中表示加法。 此外在正则表达式中,用来表示一或多个前面的字符 | 
| - | 在运算式中表示减法。 在 GNU 指令中,如果单独使用 - 符号,不加任何该加的文件名称时,代表标准输入的意思。 在 cd 指令中则比较特别,表示切换到上一次工作的目录:cd - | 
| % | 在运算式中,用来表示除法 | 
| = | 常在变量设定时使用 | 
| == | 常在条件判断式中看到,代表等于的意思 | 
| != | 常在条件判断式中看到,代表不等于的意思 | 
| ^ | 这个符号在规则表达式中,代表行的开头位置,在[]中也与!(叹号)一样表示“非” | 
| >>><<<:>&>2&>2<>>&>&n>&-<&n<&-<><<<>| | 参见:Shell重定向详解 | 
