我读迈克尔·哈特尔的Ruby on Rails的教程,并与许多编程教程习惯他为我用命令行命令,如是否有像这些批处理文件的命令?
bundle install
rake db:migrate
我只是想知道这是什么类型的命令。我已经阅读了一些关于批处理文件的内容,从我读过的内容看来,这些将是我读过的批处理文件。
我读迈克尔·哈特尔的Ruby on Rails的教程,并与许多编程教程习惯他为我用命令行命令,如是否有像这些批处理文件的命令?
bundle install
rake db:migrate
我只是想知道这是什么类型的命令。我已经阅读了一些关于批处理文件的内容,从我读过的内容看来,这些将是我读过的批处理文件。
在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即可执行。
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)
谢谢戴夫。我可以通过以.bat结尾的任何内容来告诉批处理文件吗? – almel 2012-07-29 22:24:21
@AlexMelville如果你在Windows机器上,是的。如果你在OS X/Unix上,这些命令可能以'.sh'结尾,或者什么也不是。 – 2012-07-29 22:25:30