Não que eu recomende fazer isso.
(sirius)~: zsh -c 'print hello; zsh -i'
hello
(sirius)~: echo $SHLVL
2
Existem outros truques que você pode jogar com a tela e usar a variável $STY
.
Se você deseja que algo seja executado a partir de zsh com telas individuais, é possível verificar a variável $ STY em seu .zshrc ou .zlogin. Está no formato <PID>.<TTY>.<HOSTNAME>
.
if [[ -n $STY ]] then
if [[ -f ~/.zsh-$STY[(ws:.:)2] ]] then
. ~/.zsh-$STY[(ws:.:)2]
fi
fi
Se estiver na tela, e se ~/.zsh-<TTY>
(da variável $ STY) existir, forneça isso e continue em seu caminho alegre. Você também pode definir uma variável de ambiente antes de chamar o shell interativo.
> FOO=bar zsh -i
> env | grep FOO
FOO=bar
> RUNTHISCOMMAND=/path/to/script zsh -i
.zshrc:
if [[ -n $RUNTHISCOMMAND ]] then
$RUNTHISCOMMAND
fi
Adicione essas verificações ao seu .zshrc / .zlogin.