Eu corro o seguinte:
echo "while emacs;do echo $?;done;echo Exit code: $?;" | bash
Se eu sair do emacs através do menu ou do botão fechar, ele imprime o código de saída 0 e reinicia.
Se eu sair do emacs por meio de digitação
(kill-emacs 1)
ctrl-x ctrl-e
O Emacs é eliminado e o loop também é eliminado, mas o código de saída ainda é 0.
O que está causando a ruptura do loop?
ATUALIZAÇÃO: De acordo com o conselho da pqnet, usei aspas simples, o código agora diz:
echo 'while emacs;do echo Exit code: $?;done;echo "Exit code: $?";echo "Loop End."' | bash
Isso produz o mesmo resultado. Eu suponho que preciso salvar o valor do pid dentro do loop while. Então eu tento:
echo 'while epid=$(emacs);do echo Exit code: $epid;done;echo "Exit code: $epid";echo "Loop End."' | bash
Se esses resultados forem confiáveis, o código de saída em ambos os casos é uma string vazia (ou binário invisível), mas também não acho isso correto? Minha afirmação do 'valor de retorno' é um código de saída incorreto, ou apenas aquele epid não o captura?
ATUALIZAÇÃO:
Uma das respostas explicou por que eu não estava obtendo os resultados esperados, mas agora estou curioso para saber que código permitiria que eu visualizasse o código de saída do emacs, já que nada do que eu criei faz isso.