2010-09-30 11 views
6

Muszę połączyć się ze zdalnym serwerem przez telnet i chcę wysłać tam dane wejściowe.Jak wysyłać polecenia do telnetu i pozostawić sesję otwartą

To jest emulator procesora (MCF68k), więc nie mogę po prostu scp pliku na serwerze i uruchomić stamtąd.

mogę wysłać wejście tak:

telnet host.name < input.file

który skutecznie przekazują dane do serwera i uruchomić polecenia zapisane, że chcę. Potrzebuję jednak sesji telnetu, aby zachować interaktywność (nie zakończyć).

Jak przesłać plik do polecenia, a następnie przekazać sterowanie stdin do terminala i pozostawić sesję interaktywną otwartą?

bardzo późno Edit:

myślę, można to zrobić za pomocą expect:

człowiek spodziewać: http://www.manpagez.com/man/1/expect/

Pythona otoki: http://www.noah.org/wiki/pexpect

+0

Narzędzie ekranowe może zrobić to, czego potrzebujesz. http://www.gnu.org/software/screen/ – aschepler

+1

Nie ma mowy o tym offsecie. Byłby superużytkownikiem, z wyjątkiem tego, że wstępne wejście interaktywne można uznać za programowanie. –

+1

@ Czy naprawdę przeczytałeś FAQ? "najlepsze pytania dotyczące przepełnienia stosu zawierają trochę kodu źródłowego, ale jeśli twoje pytanie obejmuje ogólnie ... narzędzia programowe powszechnie używane przez programistów ... to jesteś w odpowiednim miejscu, by zadać pytanie!" –

Odpowiedz

2

Czy cat input.file - | telnet host.name pracę?

+0

Niestety, nie. Chociaż wydaje się, że działa to w przypadku innych poleceń, takich jak 'cat input.file - | xxd'. Wygląda na to, że połączenie telnetu używa 'getch' lub jakiegoś równoważnego - nie wiem, czy to z nim jest, czy co. –

+0

Drażniące. Nie mogę wymyślić niczego poza tym, przepraszam. –

+0

To może nie działać z powodu opróżnienia 'stdin', a może faktu, że wejście nie będzie z tty? Co za ból. –

Powiązane problemy