我试图从bash脚本中调用Ruby脚本,但是没有运气。

#!/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脚本的新手,所以我很确定自己只是在犯一个愚蠢的错误。

我正在使用Ruby 1.8.7运行Ubuntu 10.10。在此先感谢您的帮助或建议。

编辑:删除.sh和.rb并重新开始,并确保对.sh进行chmod +x,并且在第一次尝试时就可以使用。我不知道为什么。不过,感谢您的帮助。

最佳答案

文件名后面的bash脚本中是否有回车符?

已编辑

仔细检查bash脚本中文件名是如何传递给ruby的。

如果找不到文件,错误输出应如下所示

ruby :没有这样的文件或目录-bash_test.rb(LoadError)

从显示为错误的内容看来,ruby认为回车是文件名的一部分,因此您将得到以下错误输出。

(LoadError)h文件或目录-bash_test.rb

关于Ruby:从bash脚本运行脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5236471/

10-14 19:43
查看更多