Zsh别名总是将$ PWD设置为主页
问题描述:
我想要别名在我当前所在的文件夹中创建新的tmux会话的命令,并将文件夹名称(连字符)设置为会话名称。如果会话已经存在,TMUX重视它:
alias tses="tmux new -As $(basename $PWD | tr . -)"
当我在shell中运行命令,如下所示:tmux new -As $(basename $PWD | tr . -)
它按预期工作。但是,当我运行别名tses
时,它始终将我的主文件夹的名称设置为会话名称。
这是为什么,我如何解决它按预期工作?
答
显然,双引号导致zsh在加载.zshrc
时评估该命令(因此为$PWD
)。把它放在单引号中:
alias tses='tmux new -As $(basename $PWD | tr . -)'
解决了它。另见:Get the `pwd` in an `alias`?。
99%的别名问题可以通过使用函数来解决。 – Barmar