CISR contrôle par un tube nommé (au lieu de STDIN / STDOUT)
Question
Est-il possible d'exécuter Ruby IRB ver un tube nommé, donc je peux envoyer des commandes à distance et obtenir des résultats?
En général, je voudrais utiliser le moteur de la CISR, alors une interface utilisateur différente (probablement écrit avec .Net).
La solution
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 proche ...
Autres conseils
Il semble (que je viens d'essayer); juste tuyau E / S par votre nom ppipe et vous êtes bon.
Mais je dois demander, pourquoi?
Plus précisément, pourquoi ne pas vous exécutez simplement comme un sous-processus?