检查串行设备是否正常工作,否则重启

时间:2014-03-26 08:24:58

标签: linux bash

我有一个BeagleBone Black运行Debian,通过USB连接868Mhz加密狗,显示在/ dev / ttyACM0 在某些情况下,重启后设备不会显示。因此,我编写了以下bash脚本并将其添加到crontab(@reboot)

#!/bin/bash
# Checks if CUL is available. Reboots otherwise
sleep 5m
if [ "ls /dev | grep ttyACM0" ]; 
then
  echo "CUL is available"
else
  echo "CUL is not available. Rebooting..."
  reboot
fi

但这种做法似乎无效。

2 个答案:

答案 0 :(得分:2)

你的if条件应该是:

[ -c /dev/ttyACM0 ]

&安培;也许你还应该为major&次要的。

Herebash if指南的链接。

答案 1 :(得分:1)

我认为你的脚本总是说CUL是可用的并且永远不会重新启动..你的if条件只是一个字符串,它将始终返回true。将其替换为命令替换,并在其中添加实际条件(-n测试以查看字符串是否为非零长度):

if [ -n "$(ls /dev | grep ttyACM0)" ];