Nie działa też użycie echo-e "\ 029"
. Ale jeśli użyjesz strg + alt gr + ] bezpośrednio w sesji terminalowej -> to działa.Nie można zamknąć sesji scpi (telnet) z echo "^]", gdy używam go w skrypcie
Muszę zadać moje pytanie bardziej konkretnie:
Podłączam generator RF (AGILENT) przez Telnet/SCPI.
Jeśli robię ten podręcznik na terminalu i prasie pod koniec sesji CTRL + ALT GR + ] dla „^]”, a następnie zamknąć sesję SCPI prawidłowo i mogę wpisać quit
aby zamknąć sesję telnet prawidłowo.
Na wyświetlaczu generatora RF nie ma komunikatu o błędzie. Tak powinno być.
Jeśli zrobię to za pomocą skryptu, sesja SCPI wydaje się nie rozpoznawać warunku sygnału przerwania "^]" i zostanie zmuszona do zamknięcia po zakończeniu skryptu (telnet i scpi). -> Wiadomość: "Odłączono od hosta zagranicznego". Niestety, dostaję komunikaty o błędach na wyświetlaczu generatora RF -> „Nieprawidłowy nagłówek” itp
Po pojawieniu udane połączenie: Połączony 192,168.10.66 znak Escape jest „^]” -> To jest punkt sporny. Ręczne wprowadzanie w terminalu działa poprawnie, skrypt nie działa.
Mój skrypt wygląda tak:
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
Dlaczego po prostu nie "wyjść"? –
Nie widzę tutaj pytania. –
Wygląda na to, że scpi ma polecenie close (* prefix_close *), ale nie zdziwiłbym się, gdyby samo zamknięcie połączenia miało taki sam efekt (wystarczy upaść na koniec skryptu). Podczas uruchamiania telnet prawdopodobnie sprawdza, czy stdin to tty (na przykład potrzebne echo IAC DO/DONT). Normalne telnety wyłączają "aktywne" gromadzenie sesji IAC, gdy są używane na niestandardowym porcie. – wildplasser