Ruby:从bash脚本运行脚本?

Ruby:从bash脚本运行脚本?,ruby,linux,bash,scripting,Ruby,Linux,Bash,Scripting,我正在尝试从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 这两个

我正在尝试从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运行Ubuntu10.10。提前感谢您的帮助或建议

编辑:删除了.sh和.rb并重新开始,并确保chmod+x了.sh,并且在第一次尝试时就成功了。我不知道为什么。不过,谢谢你的帮助。

试试看

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

在bash脚本中,文件名后面是否有回车符

编辑

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

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

ruby: No such file or directory -- bash_test.rb (LoadError) 从显示为错误的内容来看,ruby似乎认为有一个回车符作为文件名的一部分,因此您得到了以下错误输出

(LoadError)h file or directory -- bash_test.rb
有时,您可能需要执行ruby./bash_test.rb。不在您的$PATH中。

请查看我的编辑;格式化代码块的最好方法是将它们缩进4个空格,或者选择它们并按下{}按钮。啊,谢谢。。。那好多了。我很感激。为了方便那些在键盘上寻找{}按钮的人,@meagar指的是问题编辑器上方的图标。LoadErrorh文件或目录-/home/john/Desktop/bash_test.rb:P应该提到我已经试过了。@kivetros:不是你,是你。对您的脚本运行dos2unix。最后我删除了脚本和.rb并重新开始。。。奇怪的是,两种方法在第一次尝试时效果都很好。不过,dos2unix真的很酷——谢谢你的提醒。