2010-09-30 6 views
6

Je dois me connecter à un serveur distant via telnet et je veux y envoyer une entrée de fichier.Comment envoyer des commandes à telnet et laisser la session ouverte

Ceci est un émulateur de processeur (MCF68k), donc je ne peux pas simplement scp le fichier sur le serveur et courir à partir de là.

je peux envoyer des données comme ceci:

telnet host.name < input.file

qui transmettra avec succès les données sur le serveur et exécuter les commandes stockées que je veux. Cependant, j'ai besoin de la session telnet pour rester interactif (pas terminé).

Comment puis-je rediriger un fichier vers une commande, puis renvoyer le contrôle de stdin au terminal et laisser la session interactive ouverte?

très tard Modifier:

Je pense que cela peut être fait en utilisant expect:

homme attendre: http://www.manpagez.com/man/1/expect/

wrapper python: http://www.noah.org/wiki/pexpect

+0

L'utilitaire d'écran peut faire ce dont vous avez besoin. http://www.gnu.org/software/screen/ – aschepler

+1

Aucun moyen n'est-ce offtopic. Ce serait super-utilisateur sauf que l'entrée pré-interactive pourrait être considérée comme une programmation. –

+1

@Will, avez-vous lu la FAQ? "Les meilleures questions Stack Overflow ont un peu de code source, mais si votre question couvre généralement ... les outils logiciels couramment utilisés par les programmeurs ... alors vous êtes au bon endroit pour poser votre question!" –

Répondre

2

Est-ce que cat input.file - | telnet host.name travail?

+0

Malheureusement, non. Bien que cela semble fonctionner pour d'autres commandes, telles que 'cat input.file - | xxd'. Il semble que la connexion telnet utilise 'getch' ou un équivalent - je ne sais pas si c'est le cas ou quoi. –

+0

Irritant. Je ne peux pas penser à autre chose, désolé. –

+0

Cela peut ne pas fonctionner en raison du vidage de 'stdin', et peut-être le fait que l'entrée ne sera pas d'un tty? Quelle douleur. –

Questions connexes