SHELL判断某个字符串是否空
时间: 2024-12-18 20:36:59 浏览: 16
在Shell脚本中,可以使用多种方法来判断一个字符串是否为空。以下是几种常见的方式:
1. **直接比较**:
```bash
str=""
if [ -z "$str" ]; then
echo "字符串为空"
else
echo "字符串不为空"
fi
```
`-z` 判断变量是否为空(长度为0)。
2. **使用空格判断**:
```bash
if [ "$str" = "" ]; then
echo "字符串为空"
else
echo "字符串不为空"
fi
```
这里`=`用于比较两个值是否相等,包括空字符串。
3. **使用单引号判断**:
```bash
if [[ ! $str ]]; then
echo "字符串为空"
else
echo "字符串不为空"
fi
```
`[[ ... ]]` 用于更严格的条件测试,`!` 表示取反,所以非空字符串会返回真。
4. **使用tr命令移除空白符后判断长度**:
```bash
if tr -cd '' < &> /dev/null <<<$str; then
echo "字符串为空"
else
echo "字符串不为空"
fi
```
`tr -cd ''` 移除了字符串中的所有字符,只剩空白,然后判断结果是否为空。
以上任意一种情况,如果字符串是空(没有任何内容,包括空格、制表符等),则会输出“字符串为空”。
阅读全文