Você pode usar o comando printf
, mas geralmente é mais fácil de entender e manter usando um aqui-documento :
mytestapp <<EOF
lab
i1
6cr
197
0
252
888
4
America/Toronto
EOF
este é o primeiro dia para mim para o bash. talvez essa pergunta já tenha sido feita, mas eu tentei o google e cheguei vazio. talvez porque não sei articular minha pergunta.
Eu tenho um programa linux personalizado / in-house que solicita ao usuário final um monte de perguntas ... e, finalmente, usa essas perguntas para configurar alguns servidores. Agora eu quero automatizar isso para que um script bash chame o arquivo bin e forneça respostas estáticas. o ideal é que eu queira salvar as respostas em um arquivo, na ordem em que elas forem solicitadas, e apenas alimentá-las no programa.
Neste momento, estou vendo exemplos de scripts que leem arquivos. Mas não consigo encontrar um exemplo que combine a entrada de arquivos e forneça respostas a um programa.
quaisquer ponteiros seriam apreciados.
EDIT 1
Eu tentei fazer o seguinte:
#!/bin/bash
echo "This script is about to call mytestapp"
mytestapp
printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n
~
Quando eu executo isso, o programa "mytestapp" é iniciado, mas ele fica lá na primeira pergunta, aguardando uma entrada como essa:
dev1:~# sh /tmp/test_wrapper.sh
This script is about to call mytestapp
Enter the 3-letter location code (e.g. usa):
E a declaração printf no script nunca entra em ação.
EDIT 2
eu encontrei meu erro. necessário para canalizar os parâmetros para o aplicativo:
printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n' | mytestapp
Você pode usar o comando printf
, mas geralmente é mais fácil de entender e manter usando um aqui-documento :
mytestapp <<EOF
lab
i1
6cr
197
0
252
888
4
America/Toronto
EOF
Tags bash shell-script