bash에서 dmesg를 한 줄씩 구문 분석하는 방법은 무엇입니까?

bash에서 dmesg를 한 줄씩 구문 분석하는 방법은 무엇입니까?

명령에서 한 줄씩 구문 분석하는 방법은 무엇입니까 dmesg? , 나는 다음을 사용해 while보았습니다 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

-c스위치가 삭제라는 것을 잊어버린 것 같아요첫 번째 통화 이후의 내용입니다.

라인 에코가 없는 이유는 간단합니다.

첫 번째 조각이 유효합니다.암호.

기본 쉘이 bash인지 확인하십시오!

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

관련 정보