2009-04-10 5 views
2

Est-il possible d'exécuter Ruby IRB sur un canal nommé, afin que je puisse envoyer des commandes et obtenir des résultats à distance?Contrôle IRB via un canal nommé (au lieu de STDIN/STDOUT)

En général, je voudrais utiliser le moteur IRB, tout en ayant une interface utilisateur différente (probablement écrite avec .Net).

Répondre

2

Je crois que oui - cela a fonctionné pour moi (Mac OS X):

dans le terminal 1:

mkfifo rpipe 

dans le terminal 2:

tail -f rpipe | irb 

dans le terminal 1:

echo "puts 'hi'" > rpipe 

dans le terminal 2 (sortie):

puts 'hi' 
hi 
nil 

Kinda ennuyeux que la commande d'origine est sortie aussi bien, mais fermer ...

1

Il semble être (je viens d'essayer); il suffit de diriger l'E/S à travers votre ppipe nommé et vous êtes bon.

Mais je dois demander, pourquoi? Plus précisément, pourquoi ne pas simplement l'exécuter en tant que sous-processus?

+0

En effet. Je suppose que je vais suivre ce chemin et passer les poignées stdin/stdout, merci, Markus! – alex2k8

Questions connexes