Envie “enter key” para o script python do bash

2

Estou tentando automatizar minha configuração do Ubuntu com um script bash e tenho o seguinte problema:

Eu quero que o script envie automaticamente um pressionamento de tecla enter , ao executar umake ide eclipse (isso instala o eclipse ide do terminal).

Esta é a saída padrão, quando executado a partir do terminal sem um script:

$ umake ide eclipse
Choose installation path: /home/gn4i/.local/share/umake/ide/eclipse
<need to press enter>
Downloading and installing requirements      

Normalmente eu faria isso com echo | umake ide eclipse , mas sempre recebo o seguinte erro

 $ echo | umake ide eclipse
Choose installation path: Choose installation path: ERROR: Unhandled exception
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/umake/tools.py", line 158, in wrapper
    function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/umake/ui/__init__.py", line 42, in display
    cls.currentUI._display(contentType)
  File "/usr/lib/python3/dist-packages/umake/ui/cli/__init__.py", line 61, in _display
    contentType.run_callback(result=rlinput(contentType.content, contentType.default_input))
  File "/usr/lib/python3/dist-packages/umake/ui/cli/__init__.py", line 41, in rlinput
    return input(prompt + " ")
EOFError: EOF when reading a line

Como posso automatizar esta instalação?

    
por uloco 20.01.2017 / 16:26

3 respostas

2

Consegui resolvê-lo com uma abordagem de tela. Isso é executado em segundo plano e eu não vejo o progresso, mas isso é ok para mim

screen -d -m -S umake-eclipse
screen -S umake-eclipse -p 0 -X stuff "umake ide eclipse\n\n"
    
por 21.01.2017 / 20:06
1

Usando um script expect muito simplista:

spawn umake ide eclipse
expect "Choose installation path:" { sleep 1; send "\r" }

Executando:

$ expect -f script.expect
    
por 21.01.2017 / 22:43
0

@ A resposta de Kusalananda não funcionará na prática, pois a execução do comando umake pára após o comando send .

Aqui está uma solução de trabalho estendida:

#!/usr/bin/expect

spawn umake ide eclipse
expect "Choose installation path:" { send "\r" }
interact
    
por 28.03.2017 / 01:36