2

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

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

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

cd /Users/rexrose/Desktop/Rubycode/c2f

和许多其他人。

关于我应该输入终端以调用 c2f 文件到底是什么的任何想法?

提前致谢。

4

2 回答 2

6

我刚开始阅读 Well-Grounded 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 中,我有一个别名 'r' 代表 'ruby',这样我就可以像这样执行一个 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>

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

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

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

您应该为每个文件名使用制表符完成的原因(顺便说一句,在 Unixfilename中是目录名和文件名的通用术语)是因为当名称不会制表符完成时,那么您在错误的目录中或者您正在尝试该目录中不存在的文件名。因此,不必输入整个路径 '/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
于 2013-08-04T06:13:36.590 回答
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”。

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

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

于 2013-08-04T02:13:25.847 回答