Use um subshell e canalize-o para bater. 'script' pode ajudar também:
user@name:~$ (printf '%s\n' 'echo 1' 'echo 2'; cat) | bash
1
2
echo 3
3
user@name:~$ # DON'T do this: (printf '%s\n' 'echo 1' 'echo 2'; cat) | bash -i
user@name:~$ (printf '%s\n' 'echo 1' 'echo 2'; cat) | script -c 'bash -i' /dev/null
++++Skript gestartet, die Datei ist /dev/null
++++user@name:~$ 1
++++user@name:~$ 2
++++user@name:~$ echo 3
++++3
++++user@name:~$ Skript wurde beendet, die Datei ist /dev/null
user@name:~$
Observação: os sinais de adição não aparecem, adicionei-os para esclarecer a parte do 'script'.
Em vez de script -c 'bash -i' /dev/null
, você pode usar script /dev/null
, pois o comando script
chama bash -i
por padrão.