在别名中使用其他命令

时间:2018-08-11 02:36:19

标签: shell alias zsh

运行此命令时,不是提交命令的时间,而是打印source ~/.zshrc时间。

〜/ .zshrc:

alias gitCommitAll="git add . && git commit -m \"`date +\"%T\"`\""

例如

source ~/.zshrc在10:00
gitCommitAll在10:10 ==> git commit -m "10:00"不是10:10

2 个答案:

答案 0 :(得分:2)

不要使用别名;使用一个函数代替。它使报价容易得多。像

gitCommitAll () {
  git add . && git commit -m "$(date +%T) $1"
}

如何处理函数的自变量取决于别名要执行的操作。看起来 就像您是要使所有(或至少第一个)“参数”成为-m选项的一部分一样,因为单独的时间并不是提交消息的主要内容。上面只是将第一个参数作为消息的一部分。

答案 1 :(得分:1)

尝试一下:

alias gitCommitAll='git add . && git commit -m "`date +%T`"'
双引号("")中的

反引号(``)将过早执行。尝试改为使用单引号('')。