为了启动新终端并在其上运行 zsh 功能,我尝试从终端内运行以下命令urxvtc
(urxvtd
作为服务运行systemd
)
urxvtc -e zsh -c "my-zsh-defined-function"
由于该功能未知,因此不起作用。我需要明确地获取我的资源zshrc
才能使其工作
urxvtc -e zsh -c "source ~/.zshrc; my-zsh-defined-function"
问题是,我不明白为什么。不应该像我运行然后输入时那样zsh
获取源吗?.zshrc
urxvtc
my-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.