首页 > 解决方案 > 在等待 candump 命令接收数据时回显字符串

问题描述

如何在bash命令candump中等待CAN消息时回显字符串

通常在运行 candump can0 之后,它会等待消息从终端运行。当它在消息中检测到 can0 时,它会回显“True”。当没有消息通过时,我也想回显“False”,但由于实际上没有任何输出,它永远不会输出假。有更好的解决方案吗?

#!/bin/bash

while true; do
if candump can0 | grep -q 'can0'; then
  echo "True"
else
  echo "False"
fi
done

标签: linuxbash

解决方案


所以 candump can0 是一个 while 循环,它将保持第一个 if 语句永远运行。解决方案是像这样向 candump 添加超时

if timeout 2s candump can0 | grep -q 'can0'; then
  echo "True"

推荐阅读