我正在阅读 Michael Hartl 的 Ruby On Rails 教程,并且与许多编程教程一样,他让我使用命令行命令,例如
bundle install
rake db:migrate
我只是想知道这些是什么类型的命令。我读过一些关于批处理文件的内容,从我读过的内容来看,这些似乎是我读过的批处理文件。
我正在阅读 Michael Hartl 的 Ruby On Rails 教程,并且与许多编程教程一样,他让我使用命令行命令,例如
bundle install
rake db:migrate
我只是想知道这些是什么类型的命令。我读过一些关于批处理文件的内容,从我读过的内容来看,这些似乎是我读过的批处理文件。
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)
在 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 即可执行它们。