Comment faire pour envoyer la commande du programme “expect” à lire dans un fichier et utiliser chaque ligne comme argument.
Je veux utiliser une structure comme une boucle dans un programme attendu qui peut ressembler à la suivante (NOTE: – tandis que la boucle est imaginaire).
spawn /my/program expect { -re EBtxjjmEcQTxc0SLd4TdXxjUduxCOLZBwEme2Z.*password: { while read_line in FILE; do send $read-line; done }
Comment programmer l’équivalent de la partie while-loop en utilisant “expect”
Notez dans votre question qu’il vous manquait un accolade et que vous avez mal saisi votre nom de variable ( read_line
et read-line
)
Attendez-vous à une extension Tcl, vous avez donc toutes les commandes Tcl à votre disposition
spawn /my/program expect { -re EBtxjjmEcQTxc0SLd4TdXxjUduxCOLZBwEme2Z.*password: { set fh [open FILE r] while {[gets $fh read_line] != -1} { send "$read_line\r" } close $fh } }
Si vous installez tcllib , vous pouvez le faire
package require fileutil spawn /my/program expect { -re EBtxjjmEcQTxc0SLd4TdXxjUduxCOLZBwEme2Z.*password: { fileutil::foreachLine read_line FILE { send "$read_line\r" } } }