为什么测试第一个字符会跳过空行?

时间:2018-12-27 12:25:18

标签: bash

为什么以下文件阅读器和带注释的行检查跳过了空行?

while read line; do
    if [ ! ${line:0:1} == "#" ]; then # leave out comments
            function_call $line
    fi
done < list_items.txt

1 个答案:

答案 0 :(得分:1)

跳过空行的行为是由不引用bash变量引起的,在比较字符串时始终引用:

while read line; do
    if [ ! "${line:0:1}" == "#" ]; then # leave out comments
            function_call "${line}"
    fi
done < list_items.txt

以上将处理空行。