目前我有这个,如果我像这样使用它,它会按预期工作addcommit 'test commit'
,但如果我使用它,因为addcommit test commit
它只看到第一个单词test
。理想情况下,我希望具有其功能addcommit test commit
并执行git add . && git commit -m 'test commit'
addcommit()
{
git add . && git commit -m "$1"
}
附言。我不明白"$1"
在这种情况下它是如何工作的,也许这将是理解它应该如何工作的一个很好的起点。
答案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)