我有一个while循环,使用readline从文件中读取行。
然后我想检查该行是否为空,我该如何做?
我已经在此站点上找到了关于带空格的行或关于变量的问题。
您可以使用这个测试:
[ -z "$line" ]
来自bash手册:
-z string
如果string的长度为零,则为真。
-n
操作符用于检查字符串是否不为空:
while read line
do
if [ -n "$line" ]
echo $line
fi
done < file.txt
如果你想排除只包含空白字符的字符串,可以使用bash的模式替换${var//find/replacement}
。例如:
if -n [ "${line//[[:space:]]/}" ]
[ -n "$line" ]
,我会很高兴。我怀疑bash
确实允许您编写可以工作的代码(虽然我不确定它在那里和其他地方的逻辑是什么),但我还是老派得不舒服没有双引号。如果您使用其他相关的Shell(例如Bourne和-我相信-Korn),那么没有引号的符号不起作用。 - Jonathan Leffler