命令处理
"":表示不可分割的整体,处理$、`、\三种符号;对于\,其后只有在接$、`、"、\、换行符五种字符时才进行翻译
'':和双引号一样也是把包含的当作字符串处理,但其中的特殊字符不起作用
``:表示其中全当做命令处理
():在本Shell中执行里面的命令
[]:判断符号,在bash中使用方括号进行判断的时候,最好在左右、等号等处加上空格;在方括号中的变量最好用双引号引起来;常量最好用单引号或双引号引起来
{}:在子Shell中执行里面的命令
$():执行里面的命令
$((expression)):计算公式
变量使用
${var}:解析变量,返回var的值
${var:-string}:var为空则返回string
${var:=string}:var为空则把string赋给var并返回var
${var:+string}:var非空时返回string
${var:?string}:var为空时string加入标准错误返回并退出
${var:n}:替换为从var从第n个字符开始的字符串
${var:n:length}:返回var从第n个字符开始长度为length的字符串
${#var}:返回var的长度
脚本中特殊变量
$0:当前程序的名称,实际上是一个内部参数
$n:传递给脚本的第n个参数,n>=1
$#:传递给程序的总的参数数目,也就是那个传说中的数组大小
$?:上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$*:传递给程序的所有参数组成的字符串。
$$:本程序的(进程ID号)PID
$!:上一个命令的PID