linux - 在等待 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
解决方案
所以 candump can0 是一个 while 循环,它将保持第一个 if 语句永远运行。解决方案是像这样向 candump 添加超时
if timeout 2s candump can0 | grep -q 'can0'; then
echo "True"
推荐阅读
- excel - VBA - 删除查询表中包含标题的空列
- mocking - Mockito:“thenReturn()”和“thenAnswer()”有什么区别?
- java - 如何在 Mockito.when 中使用泛型类
- python - '只有长度为 1 的数组可以转换为 Python 标量' 错误
- shell - 如何在带有 * 参数的 shell 脚本中找到存在的文件
- jmeter - 如何提取输入类型 = 使用正则表达式提取器或 cssextractor 或 xpath 提取器隐藏在 jmeter 中
- javascript - 如何阻止 Heroku 尝试安装 husky
- apache-iotdb - Apache IoTDB 无法启动
- kubernetes - 验证数据时出错:ValidationError(Deployment.spec.template.metadata):未知字段
- python - 从文件中读取特定信息到字典