Bash
bashrc 函式,帶有空格的 git commit -m
目前我有這個,如果我使用它,它會按預期工作,
addcommit 'test commit'
但如果我使用它,因為addcommit test commit
它只看到第一個單詞test
。理想情況下,我希望擁有它的功能addcommit test commit
並執行git add . && git commit -m 'test commit'
addcommit() { git add . && git commit -m "$1" }
PS。我不明白
"$1"
在這種情況下是如何工作的,也許這是理解它應該如何工作的一個很好的起點。
替換
"$1"
為"$*"
。為了完全安全地免受
IFS
陷阱:addcommit() { local IFS=' ' git add . && git commit -m "$*" }
在這種情況下,別名可能會有所幫助,並允許送出消息包含任何字元:
alias addcommit='_m=$(fc -nl -0); git add . && git commit -m "${_m#*addcommit }" #' addcommit $foo * $bar # will use the literal "$foo * $bar" message, without expanding it
(適用於 bash 和 ksh93)