我想要的是按下一次才打印一次
时间: 2024-02-09 20:13:21 浏览: 21
如果你想要在用户按下遥控器键后只打印一次 USERCODE 和 RMC_GETDATA 的值,可以使用以下脚本:
```
#!/system/bin/sh
# 获取最近一次按键事件的时间戳
LAST_TIMESTAMP=$(logcat -d | grep "USERCODE\|RMC_GETDATA" | tail -n 1 | awk '{print $1}')
while true; do
# 获取当前时间戳
CURRENT_TIMESTAMP=$(logcat -d | grep "USERCODE\|RMC_GETDATA" | tail -n 1 | awk '{print $1}')
# 如果最近一次按键事件的时间戳和当前时间戳不同,说明有新的按键事件发生
if [ "$LAST_TIMESTAMP" != "$CURRENT_TIMESTAMP" ]; then
# 获取 USERCODE 和 RMC_GETDATA 的值
USERCODE=$(logcat -d | grep "USERCODE" | tail -n 1 | awk '{print $9}')
RMC_GETDATA=$(logcat -d | grep "RMC_GETDATA" | tail -n 1 | awk '{print $9}')
# 打印值
echo "USERCODE: $USERCODE"
echo "RMC_GETDATA: $RMC_GETDATA"
# 更新最近一次按键事件的时间戳
LAST_TIMESTAMP=$CURRENT_TIMESTAMP
fi
# 等待一段时间,可以根据实际情况调整时间间隔
sleep 0.5
done
```
在这个脚本中,我们使用一个 while 循环来不断获取 logcat 的输出,并获取最近一次按键事件的时间戳。如果当前时间戳和最近一次按键事件的时间戳不同,说明有新的按键事件发生。我们使用 grep 和 awk 命令从输出中提取出 USERCODE 和 RMC_GETDATA 的值,并将它们保存到变量中。然后我们打印出这些值,并更新最近一次按键事件的时间戳。
为了避免过多的 logcat 输出,可以在循环中加入一个合适的时间间隔,以控制 logcat 的输出频率。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)