我有~/.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'
➜ ~
答案 0 :(得分:1)
不要仅将命令填充到变量中,因为您认为它将使更新命令和同步登录更加容易。这就产生了一个更大的问题,即您依靠分词来不破坏命令。 (而且,您要做在某种程度上需要分词,以将$CMD
分解为git
及其参数。)
只需使用以下功能。
gittag() {
echo "git tag -a '$1' -m '$1'"
git tag -a "$1" -m "$1"
}