【发布时间】:2017-02-11 10:10:37
【问题描述】:
我尝试了以下三个代码来检测空变量。
unset value
if [[ -z ${value} ]]; then
echo "value is judged as empty by [[ -z ]] : value = '${value}'"
fi
if [[ ${value} == ^[[:blank:]]*$ ]]; then
echo "value is judged as empty by [[ == ]] : value = '${value}'"
fi
if echo ${value} | grep -E "^[[:blank:]]*$"; then
echo "value is judged as empty by grep -E "^[[:blank:]]*$" : value = '${value}'"
fi
结果如下,
value is judged as empty by [[ -z ]] : value = ''
value is judged as empty by grep -E ^[[:blank:]]* : value = ''
为什么第二个不起作用?请告诉我。
【问题讨论】:
-
要使用正则表达式,请使用
=~:if [[ ${value} =~ ^[[:blank:]]*$ ]]; then。您也可以使用 glob:if [[ $value = *([[:blank:]]) ]]; then。