0

我正在阅读 Michael Hartl 的 Ruby On Rails 教程,并且与许多编程教程一样,他让我使用命令行命令,例如

bundle install
rake db:migrate

我只是想知道这些是什么类型的命令。我读过一些关于批处理文件的内容,从我读过的内容来看,这些似乎是我读过的批处理文件。

4

2 回答 2

2

db:migrate是一个 rake 任务。

bundle install与 Rake 相同,一个 Ruby 程序,采用命令行参数。

不确定引导程序的 SASS 版本,但它最终不太可能只是一个批处理文件。

您可以通过查看它们来找出它们是什么(嗯,db:migrate 是一项任务,因此您必须做更多的工作才能实现,实际上您正在运行 rake,在 Unix 下是一个 shebanged Ruby脚本;附加。我不知道它们在 Windows 下是什么。)


Rake是一个Ruby程序,由shebang( "#!")之后的程序执行,即Ruby解释器。

#!/Users/dave/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
require 'rubygems'

version = ">= 0"

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end

gem 'rake', version
load Gem.bin_path('rake', 'rake', version)
于 2012-07-29T22:22:15.010 回答
1

在 Windows 上,您实际上是在执行批处理文件,因为 Windows 不支持 shebang。例如 bundle 的批处理文件是这样的:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"ruby.exe" "C:/Ruby193/bin/bundle" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"ruby.exe" "%~dpn0" %*

如果您在安装了 Ruby 的地方签入并进入 bin 目录,您将看到所有 Ruby 命令以及相应的批处理文件,从而无需手动调用 ruby​​ 即可执行它们。

于 2012-07-29T22:43:06.053 回答