Forum Programmation.shell [Expect] utiliser le résultat d'un spawn imbriqué

Posté par (page perso) . Licence CC by-sa.
1
15
avr.
2018

Hello,

j'essaie de faire un script expect pour la première fois de ma vie, et j'avoue avoir quelques difficultés avec l'imbrication de deux spawn :

je souhaite envoyer au premier spawn le résultat d'un second spawn. Je pourrai a priori les mettre en séquentiel mais le jeton TOTP ayant une courte durée de vie et sans fenêtre de tolérance, je souhaite le générer au dernier moment pour limiter les risques dûs à la latence réseau, et donc à savoir uniquement quand on me le demande.

J'ai réalisé un script python minimaliste qui ne fait qu'une seule chose, à savoir générer mon TOTP et le cracher sans autre fioriture sur le stdout.

J'ai tenté plusieurs choses, mais sans grand résultat. Ma dernière tentative est la suivante :

#!/usr/bin/expect
spawn auth-program
set authId $spawn_id
expect -exact "Password: "
send -- "blablabla\n"
expect "Please enter your TOTP: "
spawn ./get_totp.py
set totp $expect_out(buffer)
send -i $authId -- $totp
interact -i $authId

Any help is welcome :-)

Merci !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.