如何在Mac OS终端中运行在文本编辑器中创建的Ruby脚本?

时间:2013-08-04 01:50:32

标签: ruby macos terminal

我刚刚开始阅读Well-Grounded Rubyist,我刚开始在我的Mac终端上使用Ruby。

我正在上第一课,在文本编辑器中创建一个Celsius到Farenheit转换器。我已经使用Textmate(我的文本编辑器)将代码保存为.rb文件。文件名是c2f.rb.该文件保存在桌面上名为“Rubycode”的文件夹中。

但是我在终端中运行.rb文件时遇到了困难。我尝试了许多不同的尝试调用文件的方法,包括使用:

cd /Users/rexrose/Desktop/Rubycode/c2f

和其他许多人。

关于究竟是什么的任何想法,我应该输入终端才能调用c2f文件?

提前致谢。

2 个答案:

答案 0 :(得分:6)

  

我刚开始阅读Well-Ground的Rubyist。

这是一本非常好的书。我认为它更像是一本中级水平的书,而不是初学者的书,但无论如何。

  

我尝试了很多尝试调用文件的方法,   包括使用

cd /Users/rexrose/Desktop/Rubycode/c2f

cd命令表示“更改目录”,您无法将目录更改为文件。相反,您必须将目录更改为包含该文件的目录:

$ cd /Users/rexrose/Desktop/Rubycode

然后你可以执行文件c2f.rb中包含的程序,如下所示:

$ ruby c2f.rb

以下是一些终端提示:

1)您可以使用~代替/Users/YourUserName,这样您就可以通过以下方式保存一些输入:

$ cd ~/Desktop/Rubycode

键入'〜'而不是'/ Users / YourUserName'将成为第二天性。

2)使用不带参数的cd命令:

$ cd

会将您带到您的主目录,即/ Users / YourUserName

3)您应该更改提示以指示您当前所在的目录。为此,请在主目录中创建一个名为.bash_profile的文件(/ Users / YourUserName)。首先检查它是否存在:

$ cd
$ ls -al

命令ls -al将显示目录中的所有文件,包括隐藏文件,这些文件的名称以.开头。如果存在名为.bash_profile的文件,请将其打开;如果它不存在,请创建它。把它放在.bash_profile

PS1="\w$ "

要让终端识别更改,您可以退出终端并重新启动它,或者执行此操作:

$ source .bash_profile

然后打开一个新的终端寡妇。

您还可以将“别名”添加到.bash_profile。例如,在我的.bash_profile中,我有'ruby'的别名'r',所以我可以执行这样的ruby程序:

$ r my_program.rb

在.bash_profile中你可以创建一个这样的别名:

alias r="ruby"

4)终端中的标签完成:

您可能已经注意到可以键入文件名的一部分,然后单击选项卡,终端将完成文件名。使用制表符完成,我可以像这样执行我的ruby程序:

$ r my_pr<tab>

事实上,我将我的练习ruby程序命名为我可以使用制表符完成效果最大化。我有名为1.rb,2.rb,3.rb的文件,然后我只需输入以下内容即可执行其中一个:

$ r 1<tab>

事实上,你甚至可能不必键入它!如果按下键盘上的向上箭头键,终端将显示上一个命令,如果再次按向上箭头键,则会在此之前看到命令。因此,您可以向上滚动到上一个命令,然后点击返回执行它 - 无需键入任何内容。

您应该尽力为路径中的每个文件名使用制表符完成。例如,如果你正在使用/ Users / YourUserName / dir1 / dir2,你应该这样做:

$ cd /Use<tab>/YourUser<tab>/di<tab>/di<tab>

你应该为每个文件名使用制表符完成的原因(顺便说一下,在Unix filename中是目录名和文件名的通用术语)是因为当名称不是制表符完成时,你就是在错误的目录中或您正在尝试该目录中不存在的文件名。因此,不必输入整个路径'/ Users / YourUserName / dir1 / dir2',然后在点击返回时查找错误,选项卡完成将在出现错误时立即通知您(因为文件名已赢't tab complete) - 为你节省一些打字。

5)因为您可能会在一段时间内使用终端主要用于ruby程序,所以您可以设置一些东西,以便终端在您的目录Users / rexrose / Desktop / Rubycode中自动打开。把它放在.bash_profile:

cd "/Users/rexrose/Desktop/Rubycode"  (Here you cannot use ~)

6)有时,您可能需要在命令行中键入计算机上存在的长文件名:

$ cd /Library/SomeLongName/AnotherLongName34832o222/142582dir/some_file.txt

您可以先在Finder中找到该文件,而不必在命令行输入所有内容。然后,如果将文件拖到终端窗口,则将在光标处输入文件名。

最后,组织文件的更好方法可能是将它们放在主目录下的目录中,如下所示:

~$ mkdir ruby_programs
~$ cd ruby_programs
~/ruby_programs$ mate 1.rb

答案 1 :(得分:1)

首先要做的事情:cd代表“更改目录”。

通常终端应该在“〜”中打开,这是你大多数事情所在的主目录。在OS X中,它将是/Users/[username]。也有可能在OS X中,它将保存最后一个会话的位置。我也建议,因为你开始安装“Iterm2”,这是一个很好用的终端。它支持多个标签等。

Ruby,即解释器,是命令“ruby”。要调用脚本,您必须使用文件名调用Ruby:

ruby /Users/rexrose/Desktop/Rubycode/c2f/c2f.rb

这几乎相当于:

cd /Users/rexrose/Desktop/Rubycode/c2f/
ruby c2f.rb

它几乎相同,但现在差异不应该打扰你。让我们说第二种调用脚本的方式比第一种更有利。

现在,第二件事:如果你想在Ruby中尝试,你可以启动一个交互式shell。命令是“irb”。

键入irb输入,然后您可以键入Ruby代码。如果要离开,请多次按 CTRL + C

最后一件事,我建议installing "RVM"。我希望它会为你节省时间和痛苦。如果你想安装Ruby gems,它不会弄乱已经存在于系统中的Ruby。这是我的个人意见,但我相信很多人会同意。即使Ruby附带OS X,您也应该安装不同的Ruby进行开发。它将确保如果开发中出现问题,那么Ruby OS X可能会使用它。