ecthelion ha scritto:
ho prodotto un primo abbozzo di scrit
#!/usr/bin/expect -f
set timeout -1
spawn asterisk -vvvvvvvvvvvccccccccccccccccggggggggg
expect "*CLI>\\r" {send "help\\r"}
che però nn funzia; il programma (asterisk) parte ed esegue la fase di iniz. e creazione db ma quando finisce e propone il prompt *CLI>, al quale dovrei inserire i comandi, non esegue nulla (in questo caso il comando è help).
Così ad occhio, proverei a togliere il
\\r dopo il prompt
CLI>, perché altrimenti expect ricerca il prompt e anche un carattere di invio, che ovviamente non c'è/ci sarà mai.
Comunque, secondo me fai prima a usare lo script
autoexpect (incluso nel pacchetto che hai installato) per crearti l'ossatura del tuo script se non lo script per intero.
In pratica basta che lanci il comando:
autoexpect -f nome_script asterisk -vvvvvvvvvvvccccccccccccccccggggggggg
ed eseguire una breve sessione, basterebbe anche solo dargli il comando di uscita (da asterisk) per ottenere uno script di base che poi puoi modificare/editare secondo le tue esigenze, cioè aggiungendo altri comandi da inviare ad asterisk ad esempio.
Nello script che ottieni in genere viene usata la ricerca esatta dello schema tramite l'opzione -exact, ma per avere maggiore flessibilità ti consiglio di toglierla.