zsh 别名会覆盖自身,然后执行新别名的命令

zsh 别名会覆盖自身,然后执行新别名的命令

我想创建一个别名来进行一些设置,覆盖自身,然后在新别名中执行命令。

像这样的东西:

/remote/tool/setup_my_command.sh

source ./setup_completion.sh
alias my_command='/remote/path/to/a/bin --options'

.zshrc

alias my_command='am_i_logged_in && echo "Setting up my_command" && source /remote/tool/setup_my_command.sh && my_command || (echo "Log in first" 1>&2; return 1)'

如果我没有登录,

$ my_command
Log in first

如果我登录了,

$ my_command
Setting up my_command
This is the output of my_command
$ my_command
This is the output of my_command

我认为这几乎有效,但我错过了一些东西。

$ my_command
Setting up my_command
Log in first
$ my_command
This the output of my_command

我可以直接扔进am_i_logged_in || login && source /remote/tool/setup_my_command.sh我的 .zshrc,但我不想被迫在每个终端会话中登录,即使我今天不使用这个工具。

相关内容