Я пишу сценарии автоматизации Telnet с TCL и Expect в Linux Debian. Нажатие Return в сеансе Telnet или в сценарии * .tcl (send "command\r"
) и даже send "command\n"
вызывает отправку линии с ^M (Ctrl + M) в конце. Конечно, удаленный хост рассматривает эти команды как незаконные. Пробовал до telnet
set crlf
перед открытием соединения и mode line
при подключении, но это не влияет. Используя Puttys GUI, я включил опцию this, чтобы отправить новую строку, нажав Return вместо ^M. Работает отлично. Как настроить этот параметр для telnet
?Linux Telnet vt100 Возврат ключа отправляет^M
Помощь была бы очень признательна!
Edit:
stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
stty
(с stty icrnl
включен)
speed 38400 baud; line = 0;
-brkint -imaxbel
Такая же проблема с пустым ожиданием. –
Err, '\ r' * is * Ctrl-M. – EJP
@EJP: Да, конечно: '\ r' является Ctrl-M и' \ n' является Ctrl-J. Но я не хочу отправлять эти Chars на удаленный хост, потому что они декодируются как обычный текст, а не как терминальные коды. –