我有一个连接到提供简单命令行的串行端口的设备。我的目标是最终通过Expect与之互动。不过,我遇到了一个问题-当我用cat /dev/ttyS0
或screen /dev/ttyS0
读取设备的输出时,它决定使用自己的输出作为输入。
>> BOOTING <<
Available commands:
help Show detailed help
test Run tests; see help for details
prompt>
理想情况下,它将在这里等待返回,然后执行命令。实际上,我所看到的(没有我的任何投入)是沿着这些思路:
prompt> Rn ests se hlp fo etis
Command 'Rn' not recognized. Enter 'help' for a list of choices.
prompt> ogizd. nter'hel' fo a lis of coie.
Command 'ogizd.' not recognized. Enter 'help' for a list of choices.
prompt> coics.
Command 'coics.' not recognized. Enter 'help' for a list of choices.
prompt> d. Ener 'elp'for listof coies
Command 'd.' not recognized. Enter 'help' for a list of choices.
依此类推,直到我停止cat
。有趣的是,重新启动它不会产生任何输出(直到我关闭设备电源,然后重新开始反馈),这向我暗示它只有在观察到它的输出时才在自言自语。缺少的字符证实了这一建议。将cat
重定向到文件不会发生任何变化。
命令行代码不是我的。其他用户没有此类问题。
这里可能出什么问题了,我该如何解决?
答案 0 :(得分:0)
看起来像您一样,
-设备上的硬件回显。如果是这样,您应该可以通过开关将其禁用。
-驱动程序上的软件回显。要关闭它,您可以运行:
stty -F /dev/ttyS0 -echo
这应该使cat
的行为恢复到您期望的状态。