Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在脚本中等待设备连接_Bash_Contiki - Fatal编程技术网

Bash 如何在脚本中等待设备连接

Bash 如何在脚本中等待设备连接,bash,contiki,Bash,Contiki,我有一个Sky无线传感器节点和一个脚本,用于打印节点的输出 sudo ./serialdump-linux -b115200 /dev/tmotesky1 如果在pc检测到节点之前启动此脚本,则会出现以下错误: /dev/tmotesky1: No such file or directory 但是如果我等待20秒,我会错过最初的打印(这很重要) 有没有办法检测/dev/tmotesky1是否存在? 差不多 while [ ! -f /dev/tmotesky1 ] ; do sleep 1

我有一个Sky无线传感器节点和一个脚本,用于打印节点的输出

sudo ./serialdump-linux -b115200 /dev/tmotesky1
如果在pc检测到节点之前启动此脚本,则会出现以下错误:

/dev/tmotesky1: No such file or directory
但是如果我等待20秒,我会错过最初的打印(这很重要)

有没有办法检测/dev/tmotesky1是否存在? 差不多

while [ ! -f /dev/tmotesky1 ] ; do sleep 1; print 'Waiting...'; done

提前谢谢

您的代码表明您正在使用Linux,可以使用热插拔机制

在通用系统上,您可以编写udev规则(->请参见随附设备时发生的情况),该规则启动程序或将某些内容写入管道。当使用systemd时,您可以启动一项服务(请参阅
man systemd.device


在小型/嵌入式系统上,可以编写自定义的
/sbin/hotplug
程序(在
/proc/sys/kernel/hotplug
中设置),而不是使用
udev

您的想法应该可行。您可能还希望将项目视为在创建文件之前阻止的一种方式。在我的脚本编写中不太确定,但对于字符设备特殊文件,您可能需要“-c”而不是“-f”。