Git bash-引号中的变量

Git bash-引号中的变量,git,bash,variables,quotes,Git,Bash,Variables,Quotes,我试图创建一个bash函数,自动添加工作树中未跟踪或修改的所有内容,提交并推送 这就是它看起来的样子: gcp() { git add -- .; git commit -m \"$1\"; git push origin $2; } 但是,当我测试它时,我得到: $ gcp "test this" master error: pathspec 'this"' did not match any file(s) known to git. 如何使变量周围的引号正确运行

我试图创建一个bash函数,自动添加工作树中未跟踪或修改的所有内容,提交并推送

这就是它看起来的样子:

gcp() {
    git add -- .;
    git commit -m \"$1\";
    git push origin $2;
}
但是,当我测试它时,我得到:

$ gcp "test this" master
error: pathspec 'this"' did not match any file(s) known to git.

如何使变量周围的引号正确运行?

您不应该转义引号。我还建议引用所有论点。也许你的分行有空位,谁知道呢?如果在一行中放入更多语句,则只需要分号

gcp() {
    git add -- .
    git commit -m "$1"
    git push origin "$2"
}

据我所知,分支名称实际上不能包含空格(或大多数其他shell元字符),但引用仍然是安全的选择。使用
终止行是一种好的做法吗还是通常认为不必要?我的意思是,很明显,它不是必需的,但是,例如,JavaScript并不总是需要
在每行的末尾,但是像JSHint这样的linter建议您总是把它们放在后面。@ArielDavis分号是不必要的-请参阅下面的文章:。此外,这里还有一个有趣的在线shell linter(它不以任何方式标记分号):