2011-03-08 7 views
4

J'essaie d'appeler un script Ruby à partir d'un script bash, mais pas de chance.Ruby: Exécuter un script à partir du script bash?

#!/bin/bash 
ruby -v 

fonctionne très bien, donc je sais que ce n'est pas Ruby, mais

#!/bin/bash 
ruby bash_test.rb 

ne fonctionne pas. Voici la partie amusante:

[email protected]:~/Desktop$ bash ubuntu_cmds.sh 
(LoadError)h file or directory -- bash_test.rb 
[email protected]:~/Desktop$ ls *.rb 
bash_test.rb 

Les deux fichiers sont assis sur mon bureau.

ruby bash_test.rb 

fonctionne très bien aussi.

Je ne connais pas encore les scripts bash, donc je suis à peu près sûr de faire une erreur stupide. Je cours Ubuntu 10.10 avec Ruby 1.8.7. Merci d'avance pour toute aide ou conseil.

EDIT: Supprimé le .sh et le .rb et recommencé, et s'est assuré de chmod +x le .sh, et cela a fonctionné sur le premier essai. Je ne sais pas pourquoi. Merci pour l'aide en tout cas.

+0

S'il vous plaît voir mon edit; la meilleure façon de formater des blocs de code est de les mettre en retrait de 4 espaces, ou de les sélectionner et d'appuyer sur le bouton {{}}. – meagar

+0

Ahh, merci ... c'est beaucoup mieux. Je vous en suis reconnaissant. – eckza

+1

Pour ceux qui recherchent le bouton '{}' sur leur clavier, @ meagar fait référence à l'icône située au-dessus de l'éditeur de questions. –

Répondre

3

Avez-vous un retour chariot dans le script bash après le nom du fichier?


ÉDITÉE

Revérifiez la façon dont le nom est passé à ruby ​​dans le script bash.

sortie d'erreur doit être comme ci-dessous si le fichier n'a pas été trouvé

 
ruby: No such file or directory -- bash_test.rb (LoadError) 

De ce que vous affichiez comme une erreur, il semble qu'il y ait un retour de chariot qui est assumée par le rubis dans le cadre du nom de fichier afin que vous obteniez la sortie d'erreur suivante.

 
(LoadError)h file or directory -- bash_test.rb 
+0

Je l'ai essayé avec et sans ... toujours rien. – eckza

+1

@kivetros: Ce n'est pas "tu" c'est "tu fais". Exécutez 'dos2unix' contre votre script. –

+0

J'ai fini par supprimer le script et le .rb et recommencer ... mystérieusement, les deux fonctionnaient très bien au premier essai. dos2unix est vraiment cool, cependant - merci pour le heads-up là-dessus. – eckza

3

essayer

#!/bin/bash 
ruby ~/Desktop/bash_test.rb 
+0

'(LoadError) h fichier ou répertoire -/home/john/Desktop/bash_test.rb': P Doit avoir mentionné que j'ai déjà essayé. – eckza

3

Vous pourriez avoir à faire ruby ./bash_test.rb, comme parfois . est pas dans votre $PATH.

Questions connexes