$0 #脚本自身名字
$1 $2 #函数或脚本位置参数
$@ #脚本或函数位置参数列表
$# #脚本或函数位置参数个数
$? #上一个命令或脚本的执行结果
${!a} # a=b;b=c; 则返回c
${a:?} #如果变量a没有赋值则报错
${a="bbb"} #如果变量a没有赋值就为a赋值为bbb
${a%.sh} # a=test.sh,截取左边,返回test
${a/test.} # a=test.sh,截取右边,返回 sh
${a#test.} # a=test.sh,截取右边,返回 sh
${#a} # 返回 变量a字符串的长度
${a:3:2} # 从第三个字符开始截取,截取2个字符串
${a:3} # 从第三个字符开始截取到最后
${a:(-2)} #截取最后两个字符
${a/aa/bb} # a=11aa11aa11,返回 11bb11aa11
${a//aa/bb} # a=11aa11aa11,返回 11bb11bb11
a="${a} bbb ${c}" #字符串拼接
$! # 查看上一个后台进程的进程id
$() # 例如 path=$(pwd)