2014-09-27 61 views
2

我找不到git的別名的,允許的任何實例參數用空格參數,這裏是我創造:的Git別名的與具有空間

cax = "!f() { msg=${1-Default message}; git add --all && git commit -am "$msg"; }; f" 

這工作正常:

git cax "one-word" 

但打破了:

git cax "one word" 

謝謝!

+0

你用單引號試過了嗎? 'cax ='!f(){msg = $ {1-Default message}; git add --all && git commit -am「$ msg」; }; f'' – VonC 2014-09-27 15:52:45

+0

@VonC這是有道理的,但在我的系統上測試表明它不起作用。 – hvd 2014-09-27 16:05:13

回答

3

您是否注意到您的問題中突出顯示的奇怪語法?

 
cax = "!f() { msg=${1-Default message}; git add --all && git commit -am "$msg"; }; f" 
^^^^^^                 ^^^^   black 
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ red 

這應該是一個很大的暗示。問題是$msg沒有在你的函數定義中引用。 "字符在Git閱讀你的配置文件時被Git特別對待,但是你想將這兩個字符傳遞給shell。改爲使用\"$msg\"