L'utilisation de echo-e "\ 029"
ne fonctionne pas non plus. Mais si utilisation strg + alt gr + ] directement dans une session de terminal -> cela fonctionne.
Je dois poser ma question plus concrètement:
Je connecte un générateur RF (AGILENT) via Telnet/SCPI.
Si je fais ce manuel sur le terminal et appuie sur à la fin de la session CTRL + ALT GR +] pour '^]' puis fermez correctement la session scpi et je peux taper quit
pour fermer correctement la session telnet.
Il n'y a pas de message d'erreur sur l'affichage du générateur RF. Il devrait donc en être ainsi.
Si je le fais via un script, la session SCPI ne semble pas reconnaître la condition du signal de rupture '^]' et sera forcée de se fermer après la fin du script (telnet et scpi). -> Message: "Déconnecté par un hôte étranger". Malheureusement, je reçois des messages d'erreur sur l'affichage du générateur RF -> "en-tête invalide", etc.
Après une connexion réussie apparaît: Connecté à 192.168.10.66 Le caractère d'échappement est ‘^]’ -> C'est le point en cause. La saisie manuelle dans le terminal fonctionne correctement, le script ne fonctionne pas.
Mon script ressemble à ceci:
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
Sous Linux, c'est en fait:
CTRL + ] puis ENTER
Enfin, saisissez la commande quit
.
^]
telnet> quit
Connection closed.
[fred@localhost ~]$
Pour quitter telnet sur redhat:
tapez "CTRL+5"
puis tapez "quit"
Pour fermer la session, utilisez la commande ci-dessous
.
Le ^]
Signifie le crochet ctrl + right
. Aussi étrange que cela soit, cela fonctionne. Vous serez redirigé vers l'invite telnet, où vous pourrez taper quit.
Sur les claviers internationaux, le caractère ]
N'est souvent pas une seule clé et doit être remplacé par une autre clé. La clé correcte est généralement la clé à droite de P ou la clé suivante après cela.
Voici une liste basée sur les commentaires ci-dessous:
Finnish, Swedish, Norwegian, Danish: ctrl + å
French: ctrl + 6
German: ctrl + ü
Swiss: ctrl + ¨
Hungarian: ctrl + 5
Portuguese: ctrl + ´
Dutch, Belgian: ctrl + $
Canadian French: ctrl + ç
Sur mon clavier danois, ce n'était pas Ctrl + å - mais à la place la clé à droite de å (qui a un chapeau, un tilde et un tréma)
Sur MacOS avec clavier turc, essayez:
Ctrl + Option + ü
Ensuite,> quit
Ctrl + ]
Cela s'affichera comme ^] puis
telnet> q
q est pour quitter
Il doit en être ainsi. Parce que ^]
Imprimé sur le terminal du serveur ne signifie rien pour le client. Le client doit attraper ce symbole avant qu'il ne soit transmis au serveur et bien sûr, vous ne pouvez pas simplement l'écrire sur le terminal dans le programme exécuté sur le serveur.
Vous devez donc interrompre la session d'une autre manière. Il existe de nombreuses méthodes.
exit
dans Shell ou sys.exit()
in python or exit()
in de nombreuses autres langues).kill ...
(PID du processus au lieu de ...
).kill ...
) Mais côté client.