观察dmesg,第一次出现后退出



我有一个脚本,它监视dmesg并在特定日志消息后杀死进程

#!/bin/bash
while sleep 1;
do 
# dmesg -w |  grep  --max-count=1  -q 'protocol'
dmesg -w | sed '/protocol/Q'
mkdir -p /home/user/dmesg/
eval "dmesg -T > /home/user/dmesg/dmesg-`date +%d_%m_%Y-%H:%M`.log";
eval "dmesg -c";
pkill -x -9 programm
done

问题是sedgrep只在两个消息后触发。因此,仅在一条消息后,脚本将不会继续。

我错过了什么吗?

您有一个定期执行dmesg的脚本。相反,编写一个脚本来监视dmesg的输出。

dmesg | while IFS= read -r line; do
case "$line" in
*protocol*)
echo "do something when line has protocol"
;;
esac
done

考虑阅读https://mywiki.wooledge.org/BashFAQ/001。

相关内容

  • 没有找到相关文章

最新更新