Ruby:从 bash 脚本运行脚本?

eck*_*kza 5 ruby linux bash scripting

我正在尝试从 bash 脚本调用 Ruby 脚本,但没有运气。

#!/bin/bash
ruby -v
Run Code Online (Sandbox Code Playgroud)

工作得很好,所以我知道它不是 Ruby,但是

#!/bin/bash
ruby bash_test.rb
Run Code Online (Sandbox Code Playgroud)

才不是。这是有趣的部分:

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

这两个文件都在我的桌面上。

ruby bash_test.rb
Run Code Online (Sandbox Code Playgroud)

也很好用。

我是 bash 脚本的新手,所以我很确定我只是犯了一个愚蠢的错误。

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

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

Cha*_*etz 3

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


编辑

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

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

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

从您显示的错误来看,ruby 假定有一个回车符作为文件名的一部分,因此您将得到以下错误输出。

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