détecter le prompt d'un remote shell

Le
unbewusst.sein
but de la manip :
j'utilise la librairie ruby net/ssh avec laquelle on peut envoyer, par
programme, des commandes au "remote shell".

ça marche très bien excepté pour une commande "cd /path/to", qui est,
comme sur mac, une commande "built-in", je ne sais d'ailleurs pas trop
ce que ça signifie exactement.

pour cette commande là, ruby net/ssh, me retourne une erreur :
exec: 4: cd: not found
à la suite de :
result=session.exec!("cd /mnt/fat;ls -Al")

et donc je cherche à savoir s'il y a un moyen de contourner ce pb.

bien sûr si je me loggue sur le serveur distant (un tél portable) en cli
(zsh), je n'ai aucun pb pour entrer, à la main, ce genre de commande, et
ça roule.

aussi, je voudrais faire une manip en shell, où je tenterais de faire
par script ce que ruby est supposé faire :

détecter le prompt et envoyer une chaîne de caractères au shell distant
"cd /path/to".

pour établir une connection, la dernière commande de zsh est :
ssh -p 2222 root@169.254.0.2

la réponse étant de la forme :
< pas mal de blabla />
Last login: Sun Jul 27 21:23:23 UTC 2008
#
la dernière ligne étant le prompt.

bon, détecter que le remote server a fini son blabla, ce n'est pas très
difficile mais comment émuler une entrée au clavier ?

et surtout comment l'envoyer à ssh ?

--
Une Bévue
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric Levenez
Le #16427801
Le 28/07/08 15:32, dans
Bévue »
pour cette commande là, ruby net/ssh, me retourne une erreur :
exec: 4: cd: not found
à la suite de :
result=session.exec!("cd /mnt/fat;ls -Al")



Je ne vois pas du tout le rapport avec Mac OS X.

Tu veux exécuter "cd" qui n'est pas un exécutable mais une commande interne
d'un shell. Il te dis dont qu'aucun exécutable ne s'appelle "cd". Le message
"cd: not found" est clair de chez clair.

Alors avant que tu ne reviennes dans 10 minutes poser une nouvelle question,
regarde l'option -c de "sh", elle et faite pour ce que tu veux faire.

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.
unbewusst.sein
Le #16428511
Eric Levenez

Je ne vois pas du tout le rapport avec Mac OS X.

Tu veux exécuter "cd" qui n'est pas un exécutable mais une commande interne
d'un shell. Il te dis dont qu'aucun exécutable ne s'appelle "cd". Le message
"cd: not found" est clair de chez clair.

Alors avant que tu ne reviennes dans 10 minutes poser une nouvelle question,
regarde l'option -c de "sh", elle et faite pour ce que tu veux faire.



ok, ce n'est pas le bon groupe.
--
Une Bévue
Publicité
Poster une réponse
Anonyme