当我在脚本中使用它时,无法关闭带有echo“^]”的scpi(telnet)会话

时间:2012-07-27 04:57:09

标签: linux telnet

使用echo-e "\ 029"也不起作用。 但是如果在终端会话中直接使用 strg + alt gr + ] - >它有效。

我必须更具体地问我的问题:
我通过Telnet / SCPI连接RF发生器(AGILENT) 如果我在终端上执行本手册并在会话结束时按 CTRL + ALT GR + ] for'^]'然后关闭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    

8 个答案:

答案 0 :(得分:137)

在Linux上它实际上是:

CTRL + ] 然后 ENTER

最后输入quit命令。

^]

telnet> quit
Connection closed.
[fred@localhost ~]$

答案 1 :(得分:31)

退出redhat上的telnet:
键入"CTRL+5",然后键入"quit"

答案 2 :(得分:8)

关闭会话使用以下命令

  1. Ctrl +]
  2. 的telnet>退出
  3. 它在REHL和CentOS中运作良好。

答案 3 :(得分:3)

^]表示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 + ç

答案 4 :(得分:1)

在我的丹麦语键盘上,它不是 Ctrl + å - 而是å右侧的键(有一顶帽子) ,波浪号和变音符号)

答案 5 :(得分:1)

Ctrl + ]这将显示为^],然后显示

telnet> q q适用于退出

答案 6 :(得分:0)

一定是这样。因为在服务器终端上打印的^]意味着客户端没有任何东西。客户端必须先捕获此符号,然后才能将其传输到服务器,当然,您不能将其写入服务器上运行的程序中的终端。

所以你需要以其他方式中断会话。有很多方法。

  1. 如果你在正在运行的程序中,你可以简单地终止它(shell中的exit或python中的sys.exit()或许多其他语言中的exit()
  2. 如果您无法控制程序流,则可以通过终止作为终端所有者的进程来关闭终端。您需要找到该流程,然后使用kill ...(流程的PID而不是...)。
  3. 如果要从客户端关闭客户端,则需要在客户端执行相同操作(kill ...)。

答案 7 :(得分:0)

在带有土耳其语键盘的MacOS上尝试:
Ctrl + 选项 + ü

然后,
> quit