循环 minicom 脚本

循环 minicom 脚本

我需要循环发送 AT 命令到我的调制解调器(华为 e171)。我尝试这个脚本(文件 script.txt):

start:
  send AT+CSQ
  sleep 2
  goto start

并通过以下方式运行它,minicom -S script.txt但什么也没得到:打开了空的 minicom 屏幕。 在此输入图像描述 但使用单个命令的脚本效果很好:

start:
  send AT+CSQ

给出预期输出: 在此输入图像描述

我做错了什么?

PS:我尝试这个脚本:

start:
  send AT+CSQ

  send AT+CSQ

  send AT+CSQ

但它只给出调制解调器的一个答案而不是三个......

答案1

同意“expect”是一种解决方法,但并不完美,因为它只能在看到其期望后打印串行端口输出,如果它没有看到预期的关键字,则无论串行端口输出如何,它都不会打印任何内容。

下面的示例每 2 秒发送一次“help”,持续 20 秒,它期望在“help”命令的响应中包含“kann>”,并打印“help”之前的任何字符,包括“help”之后的“kann>”

debian@bbb:~$ cat minicomscript.txt
verbose on
timeout 20
loop:
  send help
  expect "kann>"
  sleep 2
  goto loop
debian@bbb:~$ minicom -S minicomscript.txt

答案2

我找到了expect命令后所需的具有预期结果的解决方案关键字:

start:
  send AT+CSQ
  expect "OK"
  sleep 2
  goto start

相关内容