使用echo-e "\ 029"也不起作用.但如果在终端会话中直接使用strg+ alt gr+ ]- >它可以工作.
我必须更具体地问我的问题:
我通过Telnet/SCPI连接RF发生器(AGILENT).
如果我在终端上执行本手册并在会话结束时按CTRL+ ALT GR+ ]'^''然后正确关闭scpi会话,我可以键入quit以正确关闭telnet会话.
RF发生器的显示屏上没有错误消息.所以它应该是.
如果我通过脚本执行此操作,SCPI会话似乎不会识别中断信号条件'^]',并将在脚本结束后强制关闭(telnet和scpi). - >消息:"外部主机断开连接".不幸的是,我在RF发生器的显示屏上收到错误信息 - >"无效标题"等.
连接成功后出现:连接到192,168.10.66转义字符是'^]' - >这是问题所在.终端中的手动输入正常,脚本不起作用.
我的脚本看起来像这样:
function getIDNMessage()
{
(
echo open $1 $2
sleep 1
echo "*IDN?"
sleep 1
echo –e "\029" # or echo “^]” does not work well
sleep 1
echo "quit\r"
sleep 1
) | telnet > scpi_telnet.log 2>&1
}
getIDNMessage 192.168.10.66 7777
Run Code Online (Sandbox Code Playgroud)
小智 137
在Linux上它实际上是:
CTRL+ ]然后ENTER
最后输入quit命令.
^]
telnet> quit
Connection closed.
[fred@localhost ~]$
Run Code Online (Sandbox Code Playgroud)
该^]装置ctrl + right支架。尽管很奇怪,但它确实有效。您将进入 telnet 提示符,您可以在其中键入 quit。
在国际键盘上,]字符通常不是单个键,需要用其他键替换。正确的键通常是 P 右侧的键或之后的下一个键。
这是基于以下评论的列表:
Finnish, Swedish, Norwegian, Danish: ctrl + å
French: ctrl + 6
German: ctrl + ü
Swiss: ctrl + ¨
Hungarian: ctrl + 5
Portuguese: ctrl + ´
Dutch, Belgian: ctrl + $
Canadian French: ctrl + ç
Run Code Online (Sandbox Code Playgroud)
一定是这样。因为^]在服务器的终端上打印对于客户端来说没有任何意义。客户端必须捕获该符号,然后才能将其传输到服务器,当然您不能仅将其写入服务器上运行的程序中的终端。
所以你需要以其他方式中断会话。方法有很多种。
exit在 shell 或sys.exit()python 或exit()许多其他语言中)。kill ...(进程的 PID 而不是...)。kill ...在客户端执行相同的操作 ( )。| 归档时间: |
|
| 查看次数: |
66563 次 |
| 最近记录: |