带有空格的参数的 Git 别名

标签 git shell alias

我找不到任何允许带空格参数的 git 别名示例,这是我创建的:

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

这适用于:

git cax "one-word"

但中断:

git cax "one word"

谢谢!

最佳答案

您是否注意到问题中突出显示的奇怪语法?

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

这应该是一个很大的提示。问题是 $msg 没有在你的函数定义中被引用。 " 字符在 Git 读取您的配置文件时会被特殊处理,但您想将这两个字符传递给 shell。请改用 \"$msg\"

关于带有空格的参数的 Git 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26076251/

相关文章:

git - Git 中的 "stateful"是如何 rebase 和 merge 的?

git - 从 svn 迁移到 git 保持 svn-externals

linux - 当 while/if/etc 出现错误时如何使 bash 脚本失败?

shell - 使用 srec 工具从十六进制文件中读取给定地址处的数据

Git 在一个命令中添加和提交

Linux 命令 df 提取 "name"和 "available space"

sql - 创建连接别名 - 怎么做?

bash - 在 bash 配置文件中定义函数时出现意外标记 `(' 附近的语法错误

angular - 带有 Angular 的 Webpack 别名 - 不能使用命名空间 'UtilsService' 作为类型

git - 如何使当前的功能分支与远程分支保持更新?