是这些批处理文件的命令吗?

时间:2012-07-29 22:20:19

标签: ruby-on-rails ruby rake

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

bundle install
rake db:migrate

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

2 个答案:

答案 0 :(得分:2)

db:migrate是一项佣金任务。

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

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

你可以通过查看它们来了解它们是什么(好吧,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)

答案 1 :(得分: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即可执行这些命令。