Execução de script não assistida no terminal do ubuntu

3

Eu instalei o Ubuntu em uma máquina virtual VMWare.

Quando eu instalei as ferramentas VMWare, me deparei com uma pergunta simples:

Se eu executar um script (script perl no caso de ferramentas VMWare), há uma maneira de eu dizer a execução de antemão, que se ela me solicitar uma entrada, dado que ela tem um valor padrão, ela simplesmente a usa , não está esperando por mim para pressionar Enter?

    
por Maxim V. Pavlov 20.09.2011 / 18:20

2 respostas

6

yes é projetado para essa finalidade; Ele gera a mesma string para stdout continuamente, então você pode canalizá-lo para outro script e ele continuará respondendo da mesma forma para cada prompt. O padrão é y , portanto, ele pode dizer "sim" aos prompts, mas se você quiser apenas enviar uma nova linha toda vez que puder passá-la como um argumento:

$ yes '' | vmware-script
    
por 20.09.2011 / 19:08
4

Corrija a fonte para ter um padrão ou use um documento here ou uma string aqui para enviar sua entrada para o script stdin :

./script << EOF
answer 1
answer 2
...
answer N
EOF

Certos programas podem não aceitar isso (geralmente os que lidam com autenticação, o que pode desabilitar isso para fins de segurança). Nesse caso, procure usar algo como expect .

    
por 20.09.2011 / 19:07