我有一个while循环,它使用read行从文件中读取行。 然后我想检查线是否为空,我该怎么办? 我已经发现了有关空间线条或本网站变量的问题。
答案 0 :(得分:6)
您可以使用测试:
[ -z "$line" ]
来自bash手册页:
-z string
如果字符串的长度为零,则为真。
答案 1 :(得分:1)
-n
运算符检查字符串是否为空:
while read line
do
if [ -n "$line" ]
echo $line
fi
done < file.txt
如果您想要排除仅包含空格的字符串,可以使用bash的模式替换${var//find/replacement}
。例如:
if -n [ "${line//[[:space:]]/}" ]