Eu tenho um script bash que emprega o read
comando para ler argumentos para comandos de forma interativa, por exemplo, opções sim / não. Existe uma maneira de chamar este script em um script não interativo passando valores de opção padrão como argumentos?
Não é apenas uma opção que devo passar para o script interativo.
bash
interactive
non-interactive
Sharma Sidharth
fonte
fonte
Respostas:
Para tarefas mais complexas existe
expect
( http://en.wikipedia.org/wiki/Expect ). Basicamente, simula um usuário, você pode codificar um script para reagir a saídas de programas específicos e coisas relacionadas.Isso também funciona em casos como os
ssh
que proíbem a transferência de senhas para ele.fonte
Várias maneiras
canalize sua entrada
redirecionar de um arquivo
use um documento aqui (pode ser muito legível)
use uma string here
fonte
read
para capturar stdin, qual função você pode usar para fazer o que descreveu?Você pode colocar os dados em um arquivo e redirecioná-los desta forma:
Dados para o script:
Executando o script:
fonte
Só quero adicionar mais uma maneira. Encontrei em outro lugar, e é bastante simples. Digamos que eu queira passar sim para todos os prompts na linha de comando para um comando "execute_command". Então, eu simplesmente enviaria sim para ele.
Isso usará sim como resposta para todas as solicitações sim / não.
fonte
Você também pode usar printf para canalizar a entrada para seu script.
fonte
outra alternativa pode ser
O comando tee imprime a entrada que recebe na tela e a salva em um arquivo ao mesmo tempo.
fonte