0

我的~/.bash_aliases文件如下:

function gittag() {
         CMD="git tag -a ${1} -m '${1}'"
         echo $CMD
         `$CMD`
}

我在我的.zshrc

source ~/.bash_aliases

但是别名不起作用:

➜  ~ gittag foo      
git tag -a foo -m 'foo'
gittag:3: command not found: git tag -a foo -m 'foo'
➜  ~ 
4

1 回答 1

1

不要仅仅因为您认为它会使更新命令和同步日志记录变得更容易,就将命令填充到变量中。它产生了一个更大的问题,即您依靠分词来不破坏命令。(而且你确实需要在某种程度上分词,以分解$CMDgit和它的论点。)

只需使用以下功能。

gittag() {
    echo "git tag -a '$1' -m '$1'"
    git tag -a "$1" -m "$1"
}
于 2020-02-13T14:03:44.707 回答