Não que eu recomendaria isso.
(sirius)~: zsh -c 'print hello; zsh -i'
hello
(sirius)~: echo $SHLVL
2
Existem outros truques que você pode jogar com a tela e usando a $STY
variável
Se você deseja que algo seja executado a partir do zsh com telas individuais, é possível verificar a variável $ STY no seu .zshrc ou .zlogin. É 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 essa fonte e continue no 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.
Encontrei uma solução que funciona sem um shell extra aqui . Adicionar:
para .zshrc e chame zsh com
Realmente ótimo para iniciar várias conchas ao mesmo tempo.
fonte
Que tal acrescentar
; exec zsh
ao comando? Dessa forma, resta apenas uma concha no final.fonte
; zsh -i
, já faz isso por você.Eu tenho
eval "$RUN"
no final do meu.zshrc
. Agora posso executar comandos sem o shell extra, com:fonte