2010-09-30 141 views
6

我必須通過telnet連接到遠程服務器,並且希望在那裏發送文件輸入。如何發送命令到telnet並保持會話打開

這是一個處理器模擬器(MCF68k),所以我不能只是scp文件到服務器並從那裏運行。

我可以這樣輸入發送:

telnet host.name < input.file

這將成功地發送數據到服務器並運行存儲的命令,我想。 但是,我需要telnet會話保持交互式(不終止)。

如何將文件傳輸到命令,然後將stdin的控制權返回給終端並保持交互式會話處於打開狀態?

極晚期編輯

,我認爲這可以使用expect做到:

人想到:http://www.manpagez.com/man/1/expect/

Python包裝:http://www.noah.org/wiki/pexpect

+0

屏幕實用程序可能會做你所需要的。 http://www.gnu.org/software/screen/ – aschepler 2010-09-30 02:04:51

+1

沒有辦法是這個offtopic。除了預交互式輸入可以被認爲是編程之外,它將是超級用戶。 – 2010-10-02 09:10:06

+1

@你會不會看過FAQ? 「最好的堆棧溢出問題有一些源代碼,但如果你的問題一般涵蓋...程序員常用的軟件工具......那麼你是在正確的地方問你的問題!」 – 2010-10-04 05:24:34

回答

2

是否cat input.file - | telnet host.name工作?

+0

不幸的是,沒有。雖然這似乎對其他命令有效,例如'cat input.file - | xxd'。看來,telnet連接使用'getch'或者其他一些等價的東西 - 不知道這是否搞亂了它或者什麼。 – 2010-09-30 02:49:18

+0

刺激。我想不到其他任何東西,對不起。 – 2010-09-30 04:22:10

+0

這可能不起作用,因爲'stdin'的刷新,也許輸入不會來自tty的事實?多麼痛苦。 – 2010-10-02 09:08:57

相關問題