为什么 urxvtc 在使用“-c”参数调用时不接受 zsh 函数?

为什么 urxvtc 在使用“-c”参数调用时不接受 zsh 函数?

为了启动新终端并在其上运行 zsh 功能,我尝试从终端内运行以下命令urxvtcurxvtd作为服务运行systemd

     urxvtc -e zsh -c "my-zsh-defined-function"

由于该功能未知,因此不起作用。我需要明确地获取我的资源zshrc才能使其工作

     urxvtc -e zsh -c "source ~/.zshrc; my-zsh-defined-function"

问题是,我不明白为什么。不应该像我运行然后输入时那样zsh获取源吗?.zshrcurxvtcmy-zsh-defined-function

答案1

不应该,因为您没有zsh交互运行。引用man zsh(部分STARTUP/SHUTDOWN FILES):

[I]如果 shell 是交互式的,则从以下位置读取命令/etc/zshrc进而$ZDOTDIR/.zshrc

您可以尝试使用-i

-i     Force  shell to be interactive.  It is still possible to specify
       a script to execute.

相关内容