Você pode usar o Perl e o módulo IO :: Prompter. Aqui está um script que deve ajudar
#!/usr/bin/perl -w
use IO::Prompter<<EOF;
echo "Hello world!"
ls ls -l
ls -l | sort
EOF
use strict;
use feature 'say';
use IPC::Open2;
use Time::HiRes 'sleep';
open2('>&STDOUT',\*SHELL,'bash');
while(my $cmd=prompt '$'){
say SHELL $cmd;
sleep 0.05;
}
Este script fornece um prompt (configurável, basta editar o argumento para prompt
) e cada pressionamento de tecla insere um caractere do bloco de comando acima. Backspace funciona também, e você também pode pressionar enter e IO :: Prompter completará automaticamente a linha e enviará para bash a uma velocidade razoável de escrita. Depois de executar os comandos do bloco de comando, o script continuará a aceitar qualquer entrada e a enviará para o bash.
Você deve ter o Perl já instalado. Para instalar o IO :: Prompter, execute cpan IO::Prompter
do seu emulador de terminal favorito.