Você deseja usar a função exec
no script expect
para obter o mesmo comportamento que o $(...)
no shell
Veja o exemplo abaixo:
Vamos usar o programa externo 4expect.sh
abaixo que iremos alimentar sem o script expect
:
#!/bin/sh
# Test program : let set filename as "4expect.sh"
# in the same directory where expect script will work
echo; read -p 'question: ' answer
echo "Got answer:>${answer}<"
E aqui nosso script expect
que aguardará "pergunta" do programa externo e o alimentará com o total de arquivos no diretório atual (obterá a saída de programas externos ls
e egrep
) que serão usados por expect
' send
:
#!/usr/bin/expect -f
spawn -noecho ./4expect.sh
expect -re "question" { send -- [exec ls -la . | egrep "^total" ]\r }
interact
puts "\nDone.\n"
exit