在zsh中设置相对别名

时间:2014-08-19 09:19:20

标签: shell alias zsh

我创建了这样的别名:

alias gopath="export GOPATH=$(pwd)"

但不幸的是,它将GOPATH设置为.zshrc来源的目录。当我实际调用别名时,如何更改别名以评估pwd

3 个答案:

答案 0 :(得分:2)

使用单引号而不是双引号。变量和命令替换在双引号内扩展。当您使用单引号时,它们不会被展开,但是当别名被替换为该行时,它们将被扩展。

alias gopath='export GOPATH=$(pwd)'

答案 1 :(得分:1)

您可以使用函数而不是别名:

def gopath {
    export GOPATH=$(pwd)
}

答案 2 :(得分:1)

为了避免在定义别名时扩展$(pwd),您可以使用单引号而不是双引号:

alias gopath='export GOPATH=$(pwd)'

您还可以使用$显式转义\,同时仍然使用双引号:

alias gopath="export GOPATH=\$(pwd)"

如果您想在定义期间扩展某些部分而在使用别名时扩展其他部分,这会派上用场。