You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bash脚本检测空行并输出行号失败,求排查方案

问题分析与修复

你的脚本没有输出,核心原因是read -r读取每行时会自动剔除行尾的换行符。文本里的空行被读取后,$line变量的值是空字符串,而非你判断的$'\n\n',导致条件永远不触发。

修复后的脚本

input="./input.txt"
declare -i count=0

while IFS= read -r line;
do
    ((count++))
    # 检查当前行是否为空字符串
    if [ -z "$line" ]; then
        echo "$count"
    fi
done < "$input"

补充说明

  • [ -z "$line" ]是Bash里判断字符串为空的标准写法,比[ "$line" == "" ]更简洁可靠。
  • 完全保留了你原有的循环结构,后续可以直接在循环内或条件块里添加其他逻辑。

内容的提问来源于stack exchange,提问作者thomasbishop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:15:41