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`?.
我想为在我当前所在的文件夹中创建一个新的 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`?.