2017-08-30 36 views
1

我試圖創建一個別名,它是git commit -m "commit message"的簡寫。如何在創建函數時在bash中的雙引號之間傳遞句子

我想要做的是在~/.aliases下面創建一個函數。

gc() 
{ 
    git commit -m ""[email protected]"" 
} 

這給我此錯誤消息時,我用這個「別名」 gc install project

error: pathspec 'install' did not match any file(s) known to git. 
error: pathspec 'project' did not match any file(s) known to git. 

,而我希望它是git commit -m "install project"

我怎麼能因爲我想使這個別名工作它來?

回答

2

由於目標是將所有參數合併到gc成一個字符串作爲參數用來-m,要使用$*,不[email protected]。此外,您不需要指定引號。在git commit -m "install project"中,引號不是參數的一部分;他們只是在那裏指示bashinstall project是一個單詞,而不是兩個單獨的詞,作爲參數傳遞給git

gc() { 
    git commit -m "$*" 
} 

不過,我會鼓勵你承擔責任,傳遞,適當引用參數gc,這樣你就不必擔心什麼殼會做字符,如$*

gc() { 
    git commit -m "$1" 
} 

gc "install my *awesome* project"