我在 linux 虚拟机上使用 telnetlib 运行 python 脚本。
99% 的时间, tn.write('\n') 工作顺利。
但是有一种情况,当服务器刚启动时,在真实控制台中,第一个登录的用户需要在看到登录信息后按键盘上的 Enter 键才能继续。如果他们不按 Enter,他们将永远保留登录信息。
而这一次 tn.write('\n') 与在控制台中手动按 Enter 不同。甚至不是使用以下脚本按 Enter 的方法:
tn.write('\r\n')
tn.write("\r\n".encode('ascii'))
# or with time.sleep(1) inserted with any value
我的脚本可以使用密码连接到服务器,就像每次一样。
通过使用 read_some 或 read_eager,我很确定控制台上只有一个信息表(我的脚本遇到),没有提示,没有指示要求用户按 Enter,只要按 Enter,您就会进入控制台并获取你的第一个提示。
(如果我手动登录,按 Enter 并退出,我的脚本运行顺利,因为它不再是第一个用户。)