2012-07-29 41 views
0

我读迈克尔·哈特尔的Ruby on Rails的教程,并与许多编程教程习惯他为我用命令行命令,如是否有像这些批处理文件的命令?

bundle install 
rake db:migrate 

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

回答

1

在Windows上,您实际上正在执行批处理文件,因为Windows没有shebang支持。例如,对于包中的批处理文件是这样的:

@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" %* 

如果您在任何地方你有红宝石安装并进入bin目录,你会看到所有的红宝石以及相应的批处理文件,以使它们的命令无需手动调用ruby即可执行。

2

db:migrate是一个佣金任务。

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

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

你可以找出它们是什么看着他们(当然,DB:迁移是一个任务,所以你必须做一些更跑腿去执行,你实际上运行rake,这Unix下是shebanged Ruby脚本;附加我不知道他们是什么在Windows)


Rake是Ruby程序,通过该程序执行的家当("#!"),即后。 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) 
+0

谢谢戴夫。我可以通过以.bat结尾的任何内容来告诉批处理文件吗? – almel 2012-07-29 22:24:21

+0

@AlexMelville如果你在Windows机器上,是的。如果你在OS X/Unix上,这些命令可能以'.sh'结尾,或者什么也不是。 – 2012-07-29 22:25:30