Подтвердить что ты не робот

Не удается закрыть сеанс scpi (telnet) с помощью эха "^]", когда я использую его в script

Использование echo-e "\ 029" также не работает. Но если использовать strg + alt gr + ] непосредственно в сеансе терминала → он работает.

Я должен задать свой вопрос более конкретно:
Я подключаю радиочастотный генератор (AGILENT) через Telnet/SCPI.
Если я сделаю это руководство на терминале и нажмите в конце сеанса CTRL + alt gr + ] для '^]', закройте сеанс scpi правильно, и я могу набрать quit, чтобы закрыть сеанс telnet правильно.
На дисплее RF-генератора нет сообщения об ошибке. Так должно быть.

Если я это сделаю через script, сеанс SCPI, похоже, не распознает условие сигнала прерывания '^]' и будет принудительно закрываться после окончания script (telnet и scpi). → Сообщение: "Отключено внешним хостом". К сожалению, я получаю сообщения об ошибках на дисплее RF-генератора → "недопустимый заголовок" и т.д.

После успешного подключения: Подключено к 192,168.10.66 Escape Character - ^ ^] → Это проблема. Ручная запись в терминале работает правильно, script не работает.

Мой script выглядит примерно так:

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    
4b9b3361

Ответ 1

В Linux это фактически:

CTRL + ], затем ENTER

Наконец введите команду quit.

^]

telnet> quit
Connection closed.
[[email protected] ~]$

Ответ 2

Чтобы закрыть telnet на redhat:
введите "CTRL+5" и введите "quit"

Ответ 3

Закрыть сеанс Используйте команду ниже

  • Ctrl +]
  • telnet > quit

он отлично работает в REHL и CentOS.

Ответ 4

^] означает скобку 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 + ç

Ответ 5

На моей датской клавиатуре это не было Ctrl + å - но вместо этого ключ в правой части å (у которого есть шляпа, тильда и умляут)

Ответ 6

Это должно быть так. Поскольку ^], напечатанный в терминале на сервере, для стороны клиента ничего не значит. Клиент должен поймать этот символ, прежде чем он будет передан на сервер, и, конечно, вы не можете просто записать его в терминал в программе te, запущенной на сервере.

Итак, вам нужно прерывать сеанс другим способом. Существует много методов.

  • Если вы находитесь внутри запущенной программы, вы можете просто завершить ее (exit в оболочке или sys.exit() в python или exit() на многих других языках).
  • Если вы не можете контролировать поток программы, вы можете закрыть терминал, убив процесс, который является владельцем терминала. Вам нужно найти этот процесс, а затем использовать kill ... (PID процесса вместо ...).
  • Если вы хотите закрыть клиента с клиентской стороны, вам нужно сделать то же самое (kill ...), но на стороне клиента.

Ответ 7

Ctrl + ] Это покажет как ^], а затем

telnet> q q для выхода

Ответ 8

На MacOS с турецкой клавиатурой попробуйте:
Ctrl + Option + ü

Затем,
> quit