Voglio "ascoltare" una stringa emessa dalla shell, mentre è in modalità "Interagisci". O voglio in qualche modo emulare la modalità interattiva, che mi consente ancora di ascoltare una stringa specifica dalla shell.Aspettarsi - Aspettare mentre si interagisce
Sembra che interact
ascolti solo gli input dell'utente (i tasti premuti) e non quello restituito dalla shell.
Come farei se Aspetto di eseguire qualcosa ogni volta che vede una stringa specifica, ma altrimenti permettimi di usare la shell in modo interattivo senza ostacoli ?.
Esempio:
proc yay {} {
send_user "Yay\n"
}
trap { # trap sigwinch and pass it to the child we spawned
set rows [stty rows]
set cols [stty columns]
stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH
spawn bash
interact {
interact -re "HOT" {
yay
}
expect {
fuzz yay
}
}
se corro questo e digitare "HOT" risponde con "Yay". Come previsto, legge le mie chiavi. Ma se digito
echo fuzz
La clausola "expect" non viene attivata. Anche "echo HOT" non innescherà nulla.
Quindi è possibile o mi manca qualcosa. Forse avrei bisogno di emulare interact
in una sorta di "expect, continue" -loop. È solo importante che tutto funzioni normalmente nella shell ..
Suggerimenti qualcuno?