Answers:
并非我建议这样做。
(sirius)~: zsh -c 'print hello; zsh -i'
hello
(sirius)~: echo $SHLVL
2
您还可以使用屏幕和使用$STY
变量来玩其他技巧。
如果要通过zsh在单个屏幕上运行某些程序,可以在.zshrc或.zlogin中检查$ STY变量。格式为<PID>.<TTY>.<HOSTNAME>
。
if [[ -n $STY ]] then
if [[ -f ~/.zsh-$STY[(ws:.:)2] ]] then
. ~/.zsh-$STY[(ws:.:)2]
fi
fi
如果在屏幕上,并且如果存在~/.zsh-<TTY>
(来自$ STY变量),请提供该源,然后继续按照您喜好的方式进行。您还可以在调用交互式外壳程序之前设置环境变量。
> FOO=bar zsh -i
> env | grep FOO
FOO=bar
> RUNTHISCOMMAND=/path/to/script zsh -i
.zshrc:
if [[ -n $RUNTHISCOMMAND ]] then
$RUNTHISCOMMAND
fi
将这些检查添加到您的.zshrc / .zlogin中。