objectif
Piloter des programmes interactifs (ftp, telnet, cli maison) de façon déterministe.
code minimal
expect <<'EXP'
spawn ftp data.pm
expect "Name*:"
send "user\r"
expect "Password:"
send "secret\r"
expect "ftp>"
send "quit\r"
EXP
utilisation
# avec timeout
expect -c 'set timeout 5; spawn ssh user@data.pm; expect "$ "; send "exit\r"'
variante(s) utile(s)
# lire un mot de passe depuis stdin
expect <<'EXP'
log_user 0
gets stdin pw
spawn ssh user@data.pm
expect "password:"
send "$pw\r"
EXP
notes
- ne logguez pas les secrets; utilisez
log_user 0. - préférez SSH keys quand possible.