2012-07-29 40 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