Em vez de usar o redirecionamento de entrada (./program < arthur.txt), que é apenas uma entrada de buffer para o seu programa, você deve usar ferramentas exatamente como "esperar" para aguardar a pergunta e enviar as respostas uma a uma.
#!/usr/bin/expect
log_user 0
spawn ./program
log_user 1
expect {
"*?"
}
send "Arthur, King of the Britons\r"
expect {
"*?"
}
send "To seek the Holy Grail\r"
expect {
"*?"
}
send "...\r"
Melhores exemplos: link