Zsh别名总是将$ PWD设置为主页

Zsh别名总是将$ PWD设置为主页

问题描述:

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

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

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

这是为什么,我如何解决它按预期工作?

+1

99%的别名问题可以通过使用函数来解决。 – Barmar

显然,双引号导致zsh在加载.zshrc时评估该命令(因此为$PWD)。把它放在单引号中:

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

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