envia comandos para nova bash e não fecha

0

Estou fazendo um script que precisa abrir uma nova instância do bash, inserir alguns comandos e depois continuar usando essa instância do bash. Como faço isso? Por enquanto eu tenho isso:

bash << EOF
    do_something()
EOF

Como faço essa nova chamada de instância do bash do_something () e depois deixo que eu digite outros comandos?

Edição posterior:

Na verdade, estou usando outro comando interno da empresa, sobre o qual não tenho controle, que faz algo por trás dos bastidores e, em seguida, me dá uma festança pré-configurada. É por isso que eu dei esse exemplo de envio de comandos. Porque pode ser configurado para qualquer intérprete.

    
por Catalin Vasile 25.11.2016 / 15:25

1 resposta

2

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.

    
por 25.11.2016 / 23:37