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

Ber*_*nie 35 linux telnet

使用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)

  • 然后输入quit.这甚至比退出vi困难. (9认同)

小智 34

要在redhat上退出telnet:
输入"CTRL+5" 然后键入"quit"


Pra*_*ngh 8

关闭会话使用以下命令

  1. Ctrl +]
  2. telnet>退出

它在REHL和CentOS中非常完美.


Wal*_*alk 6

^]装置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)


Igo*_*bin 1

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

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

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