1. 字符串为空的情况:
[[ -z "str" ]] && echo 1 可以测试str="" 和 unset str的情况. -n 可以测试字符串非空。
2. 字符串的默认值
echo ${str-xxx} 设置默认值为xxx,适用于unset str(NULL),适用于str=(NULL),不适用于str="" (空)这种情况。临时设置,不改变str中的内容。 echo ${str=xxx} 设置默认值为xxx,适用于NULL,不适用于空。改变str中的内容。 echo ${str:=xxx} 设置默认值为xxx,适用于NULL且适用于空的情况。改变str中的内容。 echo ${str:-xxx} 设置默认值为xxx,变量为NULL或空则使用默认值。不改变str中的内容。 echo ${str:+xxx} 设置默认值为xxx,变量不为NULL或空则使用默认值。不改变str中的内容。 echo ${str:?xxx} 变量为空则报错且退出。