bli*_*ile 3 keyboard shell newline expect
我正在使用 expect 来响应网络服务。但是,我在 Wireshark 中注意到,当我执行以下操作时:
send "mystring\r\n"
Run Code Online (Sandbox Code Playgroud)
它在电线上被翻译成:
"我的字符串\n"
我试过设置stty raw,以及各种组合\r,\n以及从内预计发送ASCII码。Expect 似乎将这些组合中的任何一个转换为\n. 问题是服务器似乎需要一个\r\n才能接受输入。我已经能够确定这一点,因为当我在 expect 中使用“interact”,然后^M从 shell 中键入 a (control-v enter) 时,Wireshark 会看到一串:
"我的字符串\r\n"
通过线路发送,服务器正确处理输入。有没有办法在没有翻译的情况下通过expect正确发送这个组合?
你是stty直接做还是set stty_init raw在expect脚本中使用?(expect的stty命令进行操作你的终端,而不是PTY。)您也可以看看-nottyinit选项spawn。