无法设置别名,zsh:找不到命令

时间:2020-02-13 12:09:48

标签: zsh

我有~/.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'
➜  ~ 

1 个答案:

答案 0 :(得分:1)

不要仅将命令填充到变量中,因为您认为它将使更新命令和同步登录更加容易。这就产生了一个更大的问题,即您依靠分词来不破坏命令。 (而且,您要做在某种程度上需要分词,以将$CMD分解为git及其参数。)

只需使用以下功能。

gittag() {
    echo "git tag -a '$1' -m '$1'"
    git tag -a "$1" -m "$1"
}