Не то, чтобы я советовал делать это.
(sirius)~: zsh -c 'print hello; zsh -i'
hello
(sirius)~: echo $SHLVL
2
Есть другие трюки, которые вы можете играть с экраном и с помощью $STY
переменной.
Если вы хотите, чтобы что-то запускалось из zsh на отдельных экранах, вы можете проверить переменную $ STY в вашем .zshrc или .zlogin. Это в формате <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.