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 !
# OK finalement j'ai trouvé
Posté par cho7 (site web personnel) . Évalué à 2.
Il me suffisait d'ajouter un expect -re "[0-9]{6}" après mon spawn de get_totp.py
[^] # Re: OK finalement j'ai trouvé
Posté par NeoX . Évalué à 2.
ou de faire en sort que ton get_totp.py ne sort que la chaine numerique de 6 caracteres, non ?
[^] # Re: OK finalement j'ai trouvé
Posté par cho7 (site web personnel) . Évalué à 1.
c'était déjà le cas !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.