【问题标题】:Alias in bash to add formatted current date to git commit messagebash 中的别名,用于将格式化的当前日期添加到 git 提交消息
【发布时间】:2017-09-30 13:54:42
【问题描述】:

我正在尝试为默认提交消息添加别名,如下所示:

alias gc='git commit -m "Default commit: $(date)"'

但我不喜欢日期的默认格式并想将其更改为:

date +'%A, %d %B %Y %H:%M:%S' # Tuesday, 02 May 2017 23:12:07

我遇到了如何在别名中构建它的问题。我无法处理多个双引号和单引号。有人可以帮忙吗?


编辑。

感谢关于使用函数和代码的建议。基于此,我做了这个,略有改动:

gc () 
{ 
    if [ "$#" == "0" ]; then
        itsmsg="Deafult commit";
    else
        itsmsg="$*";
    fi;
    git commit -m "$itsmsg ($(date +'%A, %d %B %Y %H:%M:%S'))"
}

【问题讨论】:

标签: bash date alias


【解决方案1】:

正如@123 提到的,您应该使用函数而不是别名。这消除了一定程度的引用。

gc () {
  git commit -m "Default commit: $(date +'%A, %d %B %Y %H:%M:%S')" "$@"
}

【讨论】:

  • 谢谢。这确实是其他解决方案之一。但我不知道在哪里定义函数以及如何在 shell 中使用它们。此外,gc 的目的是快速提交。如果我需要自定义消息,我会输入完整的命令。我会摆弄函数,看看它是怎么回事。
  • 您在当前定义别名的同一位置定义函数,并且您可以像使用任何其他命令一样使用它。
  • 明确地说,我们在这里讨论的是 shell 别名,而不是在 [alias] 文件的 [alias] 部分中定义的 git 别名。
  • 在 .gitconfig 中应该是什么样子。仅添加到配置中是行不通的。提前致谢!
【解决方案2】:

使用 ANSI C 引用,以便您可以在单引号内转义单引号:

alias gc=$'git commit -m "Default commit: $(date +\'%A, %d %B %Y %H:%M:%S\')"'

【讨论】:

  • 使用了三种形式的引号,如果您想要多一层嵌套,您将遇到麻烦。如何在单引号内嵌套单引号? echo 'You can'\''t.'
猜你喜欢
  • 2021-09-24
  • 2013-01-22
  • 2017-02-13
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多