linux 我能让'read'命令告诉我接收输入需要多长时间吗?

lx0bsm1f  于 2023-06-29  发布在  Linux
关注(0)|答案(2)|浏览(112)

我目前有一个脚本监视来自com端口的回复。它当前有一个2秒的超时(read -t2),如果没有回复,则启动一个操作。
目前,有一个问题,它达到超时意外。我想知道它到底有多想念它。
有没有办法让它说花了多长时间才成功读到某个东西?我试图在增加超时值的同时避免一堆测试,并查看一致性。谢谢
/dev/ttyS0;然后是xxxxx
如果读取失败,则执行操作。

zte4gxcn

zte4gxcn1#

使用bash及其特殊变量SECONDS

SECONDS=0
read -t 2 < /dev/ttyS0
s=$SECONDS

if [[ $s -lt 2 ]]; then
  echo "less than 2 seconds";
else
  echo "$s seconds";
fi
im9ewurl

im9ewurl2#

read没有内置此功能,但您可以将其与time实用程序结合使用。例如,time read < /dev/ttyS0将阻塞,直到它从设备读取某些内容,然后打印呼叫所花费的总时间,包括等待所花费的时间。
如果您想捕获到文件而不是在终端上显示:

{ time read < /dev/ttyS0 ; } 2>time_result

如果你想在终端上显示 * 和 * 捕获在一个文件中:

{ time read < /dev/ttyS0 ; } 2> >( tee time_result )

相关问题