2011-11-06 126 views
1

我試圖讓工作別名git的承諾bash腳本不使用多個參數

function gcam() { 
    git commit -a -m [email protected] ; 
    git status 
} 

當我調用命令gcam 'something'它工作正常,但如果消息有一個空間在中間,像gcam 'new commit'出現的消息Paths with -a does not make sense

我一直在尋找this solution,但它不爲我工作,因爲我使用[email protected]和不使用[email protected]$1。爲什麼?只是如果我需要傳遞一個額外的參數給git commit。

任何想法,使其工作呢?

在此先感謝

回答

3

@Mat是說對了一半:你應該雙引號的[email protected],則引用消息也是如此。 "[email protected]"擴展到參數列表,每一個單獨的字(即就好像每一個參數被單獨引用):

function gcam() { 
    git commit -a -m "[email protected]" 
    git status 
} 

gcam "commit message" -v 

這並不等同:

git commit -a -m "commit message" -v 
git status