Parece que a resposta aqui é para o seu caso de uso. Resumindo:
bash --init-file <(echo "yourcommand")
Aqui estão já muitas perguntas como esta, mas cada uma recomenda (uma variante da) a seguinte solução:
screen -dmS somename bash -c "/path/to/script; bash -l"
por exemplo. quando o script
terminar, execute um novo bash
.
Infelizmente, isso não funciona para mim, porque
script
usa a variável $ BASHPID para algo script
são executadas para sempre, por ex. precisa terminá-lo com CTRL-C script
(mesmo $BASHPID
) Então, a questão é:
screen
no modo desanexado (por exemplo, na inicialização) - normalmente isso é feito pelo -dm
.profile
, mas isso pode ser superado com o source ~/.profile
no script
script
inicia algum outro programa (binário) que será executado até CTRL-C script
eu preciso pegar o mesmo bash
(com o mesmo $BASHPID
(porque preciso rodar outros scripts o que depende dele) Em suma, precisamos simular o seguinte trabalho interativo:
screen
echo $BASHPID
/path/to/script
Após o acima, depois, eu posso fazer
screen -ARR
) echo $BASHPID
# produzirá o mesmo que acima Alguma ideia? (pensando no -X
mas não funciona, em algum lugar eu provavelmente cometendo um erro)
Parece que a resposta aqui é para o seu caso de uso. Resumindo:
bash --init-file <(echo "yourcommand")
Tags bash gnu-screen shell