Shell 的参数展开

类型 作用
${变量名:=默认值} 如果变量未被赋值或者赋值为空,就先对变量赋值,然后再使用该值进行展开,否则则使用变量的值进行展开。会改变变量的值,和${变量名:-默认值}的区别在是否会给变量赋值。 如果省略了 冒号(:)就不会判断空字符串,也就是空字符也被认为已经赋值
${变量名:?错误描述} 用于在变量没有被赋值或者赋值为空时,进行错误处理。如果变量的值是非空字符串,则直接展开为该变量的值,否则就将错误描述输出到标准错误输出,同时shell脚本也会停止运行如果省略了 冒号(:)就不会判断空字符串,也就是空字符也被认为已经赋值
${变量名:+默认值} 如果变量已经赋值并不为空字符串,则展开为默认的值,否则展开为空字符串。 并不会改变变量的值。 如果省略了 冒号(:)就不会判断空字符串,也就是空字符也被认为已经赋值。
${变量名:-默认值} 如果变量已经赋值并不为空字符串,则展开为为变量的值,否则展开为默认的值。 并不会改变变量的值。 如果省略了 冒号(:)就不会判断空字符串,也就是空字符也被认为已经赋值。

你可能感兴趣的:(Shell 的参数展开)