Ruby: Запустить скрипт из скрипта bash? - PullRequest
4 голосов
/ 08 марта 2011

Я пытаюсь вызвать Ruby-скрипт из bash-скрипта, но безуспешно.

#!/bin/bash
ruby -v

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

#!/bin/bash
ruby bash_test.rb

нет. Вот забавная часть:

john@starfire:~/Desktop$ bash ubuntu_cmds.sh
(LoadError)h file or directory -- bash_test.rb
john@starfire:~/Desktop$ ls *.rb
bash_test.rb

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

ruby bash_test.rb

тоже отлично работает.

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

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

РЕДАКТИРОВАТЬ: удалили .sh и .rb и начал заново, и убедился в chmod +x .sh, и это сработало с первой попытки Понятия не имею почему. Спасибо за помощь.

Ответы [ 3 ]

3 голосов
/ 08 марта 2011

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


EDITED

Дважды проверьте, как имя файла передается в ruby ​​в скрипте bash.

Вывод ошибки должен быть таким, как показано ниже, если файл не найден

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

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

 (LoadError)h file or directory -- bash_test.rb
3 голосов
/ 09 марта 2011

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

3 голосов
/ 08 марта 2011

1001 * попробовать *

#!/bin/bash
ruby ~/Desktop/bash_test.rb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...