Ho un eseguibile che avvia una shell interattiva per l'utente. Vorrei, al lancio della shell, immettere prima alcuni comandi, quindi consentire all'utente di avere una sessione interattiva. Posso farlo facilmente usando echo
:
echo "command 1\ncommand 2\ncommand3" | ./shell_executable
Questo funziona quasi . Il problema è che il comando echo che sta alimentando lo stdin del processo colpisce EOF una volta che ha fatto eco ai miei comandi. Questo EOF fa terminare immediatamente la shell (come se avessi premuto Ctrl + D nella shell).
C'è un modo per iniettare questi comandi nello stdin senza causare in seguito un EOF?
./shell_executable
alla fine dell'elenco dei comandi? Ciò potrebbe continuare, anche se avrai due istanze in esecuzione (padre e figlio).