如何在bash中逐行解析dmesg?

如何在bash中逐行解析dmesg?

如何从命令中逐行解析dmesg?,我尝试使用whileand read

while read -r L; do
    echo "line: ${L}";
done < <(dmesg -c --level=err)

但不能呼应台词。我尝试使用:

LINES=$(dmesg -c --level=err);
while read -r L; do
    echo "line: ${L}";
done <<< "$LINES"

但只回显一行,没有内容。

调用时dmesg -c --level=err有 5 行内容。

这个怎么解析呢?

答案1

我猜你忘记了-cswitch 是删除第一次调用后的内容。

这就是为什么没有线路回声的简单原因。

第一个片段有效代码。

确保您的默认 shell 是 bash !

[[ $SHELL == *bash ]] && echo 'bash is the default shell' || echo >&2 "WTF"

相关内容