Ответ 1
В Linux это фактически:
CTRL + ], затем ENTER
Наконец введите команду quit
.
^]
telnet> quit
Connection closed.
[[email protected] ~]$
Использование 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
В Linux это фактически:
CTRL + ], затем ENTER
Наконец введите команду quit
.
^]
telnet> quit
Connection closed.
[[email protected] ~]$
Чтобы закрыть telnet на redhat:
введите "CTRL+5"
и введите "quit"
Закрыть сеанс Используйте команду ниже
он отлично работает в REHL и CentOS.
^]
означает скобку 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 + ç
На моей датской клавиатуре это не было Ctrl + å - но вместо этого ключ в правой части å (у которого есть шляпа, тильда и умляут)
Это должно быть так. Поскольку ^]
, напечатанный в терминале на сервере, для стороны клиента ничего не значит. Клиент должен поймать этот символ, прежде чем он будет передан на сервер, и, конечно, вы не можете просто записать его в терминал в программе te, запущенной на сервере.
Итак, вам нужно прерывать сеанс другим способом. Существует много методов.
exit
в оболочке или sys.exit()
в python или exit()
на многих других языках).kill ...
(PID процесса вместо ...
).kill ...
), но на стороне клиента. Ctrl + ]
Это покажет как ^], а затем
telnet> q
q для выхода
На MacOS с турецкой клавиатурой попробуйте:
Ctrl + Option + ü
Затем, > quit