${name:-default}使用一个默认值(一般是空值)来代替那些空的或者没有赋值的变量name;
例子
unset name
echo ${name:-111}
结果111
name=222
echo ${name:-111}
结果222
${name:=default}使用指定值来代替空的或者没有赋值的变量name;
貌似和上一个一样
${name:?message}如果变量为空或者未赋值,那么就会显示出错误信息并中止脚本的执行同时返回退出码1。
${#name} 给出name的长度
${name%word} 从name的尾部开始删除与word匹配的最小部分,然后返回剩余部分
${name%%word} 从name的尾部开始删除与word匹配的最长部分,然后返回剩余部分
${name#word} 从name的头部开始删除与word匹配的最小部分,然后返回剩余部分
${name##word} 从name的头部开始删除与word匹配的最长部分,然后返回剩余部分