2011-03-08 2 views
4

Я пытаюсь вызвать скрипт Ruby из сценария bash, но не повезло.Ruby: Запустить скрипт из сценария bash?

#!/bin/bash 
ruby -v 

работает просто отлично, так что я знаю, что это не рубин, но

#!/bin/bash 
ruby bash_test.rb 

нет. Вот интересная часть:

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

Оба файла сидят на моем рабочем столе.

ruby bash_test.rb 

работает просто отлично.

Я новичок в создании сценариев bash, поэтому я уверен, что я просто делаю глупую ошибку.

Я бегу Ubuntu 10.10 с Ruby 1.8.7. Заранее благодарим за любую помощь или совет.

EDIT: Удалены .sh и .rb и начаты, и убедитесь, что chmod +x .sh, и это сработало с первой попытки. Понятия не имею почему. Спасибо за помощь.

+0

См. Мое редактирование; лучший способ форматирования блоков кода состоит в том, чтобы отложить их на 4 пробела или выбрать их и нажать кнопку '{}'. – meagar

+0

Ах, спасибо ... это намного приятнее. Я ценю это. – eckza

+1

Для тех, кто ищет кнопку '{}' на своей клавиатуре, @ meagar ссылается на значок над редактором вопросов. –

ответ

3

У вас есть возврат каретки в сценарии Баш после имени файла?


EDITED

Дважды проверьте, как имя файл, передаваемый Рубин в сценарии Баша.

Выход ошибки должна быть ниже, если файл не был найден

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

Из того, что вы показываете, как ошибка кажется, что есть возврат каретки, что в настоящее время берет на себя рубин как часть filename, поэтому вы получаете следующий вывод ошибки.

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

Я пробовал это с и без ... все равно ничего. – eckza

+1

@kivetros: Это не «ты», это «ты делаешь». Запустите 'dos2unix' против вашего скрипта. –

+0

Я в итоге просто удалил как скрипт, так и .rb и начал ... таинственно, оба сработали отлично с первой попытки. dos2unix действительно классный, хотя - спасибо за хедз-ап на это. – eckza

3

попробовать

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

'(LoadError) h файл или директория -/home/john/Desktop/bash_test.rb': P Должен упомянуть, что я уже это пробовал. – eckza

3

Вы, возможно, придется сделать ruby ./bash_test.rb, как иногда . не в вашем $PATH.

Смежные вопросы