2009-10-14 12 views
0

J'ai terminé mon court fichier pour une affectation de devoirs qui utilise IO.popen ("command"). Readlines pour saisir le STDOUT de cette commande. Cependant, j'ai besoin d'écrire un script shell pour envelopper mon fichier ruby. Pas de problème, mais en quelque sorte le mettre dans le script shell fait bloquer les readlines.en utilisant Ruby Popen enveloppé dans un script shell

ruby script.rb foo example > example.out 

cela fonctionne

script.sh foo example >example.out 

se bloque sur ce readlines. ruby script.rb est tout ce que script.sh contient.

Répondre

1

On dirait que vous avez oublié de transmettre vos arguments à la commande ruby. Vous pouvez également être à défaut de spécifier un interpréteur

script.sh

#!/bin/sh 
ruby script.rb "[email protected]" 

Sinon, vous pouvez simplement ajouter #!/usr/bin/ruby au sommet de script.rb et de le rendre exécutable (chmod +x script.rb). Ce n'est pas un script shell. Mais c'est généralement la manière préférée d'exécuter un script dans un langage interprétatif.

Une fois que vous pouvez l'exécuter est fait avec

./script.rb

+0

devrait être/usr/bin/ruby ​​(sans "e" à l'utilisateur) – gustavgans

+0

Merci de signaler. Parfois, les doigts sont plus rapides que le cerveau. – EmFi

+0

alternativement,/usr/bin/env ruby – perimosocordiae

Questions connexes