Esperar no script bash?

0

Existe uma maneira de usar o comando expect diretamente em bash script para o qual a automação deve ser feita, em vez de gravar um comando expect script e usar spawn para acionar o bash script de expect script ?

Como completamente em um script?

    
por Arun Prakash 29.08.2018 / 19:06

2 respostas

0

Você pode iniciar expect de um script de shell, mas expect não pode controlar a entrada de um shell que não é um processo filho de expect .

Por outro lado, raramente há uma razão para usar expect no próprio shell, o que você quiser fazer com expect você pode fazer diretamente do shell. Muito provavelmente você não quer usar expect no próprio shell, mas nos comandos iniciados a partir do shell. Então você pode chamar expect do shell e ter expect chamando os programas que você quer controlar com expect .

    
por 29.08.2018 / 20:03
0

Se você não precisar que seu script seja interativo, altere read var para var="fixed value" .

Ou você pode automatizar a entrada passando valores para a entrada padrão de seus scripts:

./myscript.sh <<END_OF_INPUTS
input string 1
input string 2
... and so on
END_OF_INPUTS

Ou você pode colocar os valores no próprio script:

$ cat test.sh
#!/bin/sh
read -p "this one is interactive: " first

exec 0<<END_INPUT
foo
bar
END_INPUT
read -p "2nd input is automated: " second
read -p "3nd input is automated: " third

echo "1st input: $first"
echo "2nd input: $second"
echo "3rd input: $third"
echo done


$ sh test.sh
this one is interactive: I type this
1st input: I type this
2nd input: foo
3rd input: bar
done

A expectativa é uma ferramenta muito útil, mas não há muitos lugares onde isso é realmente essencial.

    
por 29.08.2018 / 20:01