Eu tenho um executável que inicia um shell interativo do usuário. Eu gostaria de, após o lançamento do shell, injetar alguns comandos primeiro e depois permitir que o usuário tenha sua sessão interativa. Eu posso fazer isso facilmente usando echo
:
echo "command 1\ncommand 2\ncommand3" | ./shell_executable
Isso quase funciona. O problema é que o comando echo que está alimentando o stdin do processo atinge o EOF assim que termina ecoando meus comandos. Esse EOF faz com que o shell seja encerrado imediatamente (como se você tivesse pressionado Ctrl + D no shell).
Existe uma maneira de injetar esses comandos no stdin sem causar um EOF depois?
./shell_executable
ao final da lista de comandos? Isso pode continuar, embora você tenha duas instâncias em execução (pai e filho).