我有以下 bash 函数:
tg() {
git add -A && git commit -m $1 && git push
}
但它似乎不起作用:
$ tg "create index for users"
error: pathspec 'index' did not match any file(s) known to git.
error: pathspec 'for' did not match any file(s) known to git.
error: pathspec 'users' did not match any file(s) known to git.
显然,问题是引号被扩展了,我的中间命令被读为git commit -m create index for users
而不是git commit -m "create index for users"
我做错了什么 ?我怎样才能解决这个问题 ?
答案1
双引号扩展$1
:
tg() {
git add -A &&
git commit -m "$1" &&
git push
}
如果不引用$1
,shell 将在空格上分割其值( 的内容$IFS
),并且生成的单词将另外进行文件名通配。
有关的: