Zsh 别名总是将 $PWD 设置为 home

Zsh alias always sets $PWD to home

我想为在我当前所在的文件夹中创建一个新的 tmux 会话的命令设置别名,并将文件夹名称(带连字符的)设置为会话名称。如果会话已经存在,tmux 附加到它:

alias tses="tmux new -As $(basename $PWD | tr . -)"

当我 运行 我的 shell 中的命令像这样时: tmux new -As $(basename $PWD | tr . -) 它按预期工作。但是当我 运行 别名 tses 时,它总是将我的主文件夹的名称设置为会话名称。

为什么会这样,我怎样才能使它按预期工作?

很明显,当加载 .zshrc 时,双引号会导致 zsh 评估命令(因此 $PWD)。将其放在单引号中:

alias tses='tmux new -As $(basename $PWD | tr . -)'

解决了。另见:Get the `pwd` in an `alias`?.