$# 提供传递到shell脚本或函数的参数总数
$*,$@ 一次表示所有的命令行参数
"$*" 将所有参数视为单个字符串="$1 $2..."
"$@" 将所有参数视为单独的个体="$1""$2"... ${varname:-word} 如果varname存在且非null,则返回其值;否则返回word
${varname:=word} 如果varname存在且非null,则返回它的值;否则设置它为word,并返回其值
${varname:?message} 如果varname存在且非null,则返回它的值;否则显示varname:message,并退出命令或脚本
${varname:+word} 如果varname存在且非null,则返回word;否则返回null
(:)冒号可省略,如果省略,则“存在且非null”改为“存在”
${varname#pattern} 如果模式匹配于变量值的开头,则删除匹配的最短部分,并返回剩下的部分
${varname##pattern} 如果模式匹配于变量值的开头,则删除匹配的最长部分,并返回剩下的部分
${varname%pattern} 如果模式匹配于变量值的结尾,则删除匹配的最短部分,并返回剩下的部分
${varname%%pattern} 如果模式匹配于变量值的结尾,则删除匹配的最长部分,并返回剩下的部分
,第二个,当大于10时,加{},如第十个
$# 提供传递到shell脚本或函数的参数总数$# 提