Je suis en train d'essayer de jouer avec expect pour automatiser une
série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en
cherchant vainement comme ça marche...
J'ai regardé le man, mais il est (comme souvent avec les man...)
inutilisable pour apprendre à utiliser expect. Et j'ai pas trouvé de doc
satisfaisante sur le net. En particulier, je suis surpris de l'absence
de doc sur la page principale d'expect (expect.nist.gov), mais bon, passons.
Ce que je n'arrive pas du tout à faire, c'est à récupérer dans des
variables d'expect le résultat de commandes précédentes envoyées par
send. Par exemple, je voudrais récupérer dans toto le contenu de la
variable d'environnement du shell $TOTO, par un truc style :
spawn bash
expect "$ "
send "echo \$TOTO\r"
expect "$ "
set toto $expect_out(1,string)
send "exit\r"
expect eof
# toto devrait contenir la valeur de $TOTO
Sauf que ça marche pas du tout. En fait, je ne capte que dalle à
qu'est-ce qui est stocké dans expect_out et comment le contrôler... Si
je fais 'set toto $expect_out(buffer)', je récupère :
"echo $TOTO
blop
$ "
c'est à dire ma commande lancée par send puis tout jusqu'au expect
suivant. Bon. Mais si j'essaye de matcher différents morceaux de cette
sortie avec expect -re "(.*)$ ", par exemple, ben $expect_out(1,string)
me retourne une erreur (can't read "expect_out(1,string)": no such
element in array). J'ai essayé plein d'autres motifs plus ou moins
compliqués, mais sans plus de succès.
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
[...] Ce que je n'arrive pas du tout à faire, c'est à récupérer dans des variables d'expect le résultat de commandes précédentes envoyées par send. Par exemple, je voudrais récupérer dans toto le contenu de la variable d'environnement du shell $TOTO, par un truc style :
spawn bash expect "$ " send "echo $TOTOr" [...]
essaie:
send "echo $env(TOTO)r"
Rémi Moyen wrote:
Salut,
Je suis en train d'essayer de jouer avec expect pour automatiser une
série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en
cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
[...]
Ce que je n'arrive pas du tout à faire, c'est à récupérer dans des
variables d'expect le résultat de commandes précédentes envoyées par
send. Par exemple, je voudrais récupérer dans toto le contenu de la
variable d'environnement du shell $TOTO, par un truc style :
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
[...] Ce que je n'arrive pas du tout à faire, c'est à récupérer dans des variables d'expect le résultat de commandes précédentes envoyées par send. Par exemple, je voudrais récupérer dans toto le contenu de la variable d'environnement du shell $TOTO, par un truc style :
spawn bash expect "$ " send "echo $TOTOr" [...]
essaie:
send "echo $env(TOTO)r"
Rémi Moyen
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Bah, en fait, c'est pas vraiment du ftp, c'est captive-ntfs (le truc pour écrire sur des partitions ntfs), qui marche avec une interface à la ftp (et aussi potentiellement de manière transparente en mount avec lufs, mais lufs ne marche pas chez moi).
Et puis c'est aussi l'occasion d'essayer de jouer un peu avec expect, depuis le temps que j'en entends parler.
Ce que je n'arrive pas du tout à faire, c'est à récupérer dans des variables d'expect le résultat de commandes précédentes envoyées par send. Par exemple, je voudrais récupérer dans toto le contenu de la variable d'environnement du shell $TOTO, par un truc style :
spawn bash expect "$ " send "echo $TOTOr" [...]
essaie:
send "echo $env(TOTO)r"
Hum, oui, c'est en effet plus simple pour récupérer une variable. Merci, ça va déjà bien m'aider pour pas mal de choses !
Mais en fait, mon problème est plus vaste (je pensais que cet exemple suffirait, mais visiblement c'est trop simple :-) ). Si, par exemple, je veux récupérer la sortie d'un 'grep motif fichier', je fais comment ?
Évidemment, je peux jouer au bourrin et faire un script shell qui règle une variable à partir de mon grep puis qui lance un script expect qui utilise cette variable, mais, euh, comment dire... beurk. -- Rémi Moyen
Je suis en train d'essayer de jouer avec expect pour automatiser une
série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en
cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Bah, en fait, c'est pas vraiment du ftp, c'est captive-ntfs (le truc
pour écrire sur des partitions ntfs), qui marche avec une interface à la
ftp (et aussi potentiellement de manière transparente en mount avec
lufs, mais lufs ne marche pas chez moi).
Et puis c'est aussi l'occasion d'essayer de jouer un peu avec expect,
depuis le temps que j'en entends parler.
Ce que je n'arrive pas du tout à faire, c'est à récupérer dans des
variables d'expect le résultat de commandes précédentes envoyées par
send. Par exemple, je voudrais récupérer dans toto le contenu de la
variable d'environnement du shell $TOTO, par un truc style :
spawn bash
expect "$ "
send "echo $TOTOr"
[...]
essaie:
send "echo $env(TOTO)r"
Hum, oui, c'est en effet plus simple pour récupérer une variable. Merci,
ça va déjà bien m'aider pour pas mal de choses !
Mais en fait, mon problème est plus vaste (je pensais que cet exemple
suffirait, mais visiblement c'est trop simple :-) ). Si, par exemple, je
veux récupérer la sortie d'un 'grep motif fichier', je fais comment ?
Évidemment, je peux jouer au bourrin et faire un script shell qui règle
une variable à partir de mon grep puis qui lance un script expect qui
utilise cette variable, mais, euh, comment dire... beurk.
--
Rémi Moyen
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Bah, en fait, c'est pas vraiment du ftp, c'est captive-ntfs (le truc pour écrire sur des partitions ntfs), qui marche avec une interface à la ftp (et aussi potentiellement de manière transparente en mount avec lufs, mais lufs ne marche pas chez moi).
Et puis c'est aussi l'occasion d'essayer de jouer un peu avec expect, depuis le temps que j'en entends parler.
Ce que je n'arrive pas du tout à faire, c'est à récupérer dans des variables d'expect le résultat de commandes précédentes envoyées par send. Par exemple, je voudrais récupérer dans toto le contenu de la variable d'environnement du shell $TOTO, par un truc style :
spawn bash expect "$ " send "echo $TOTOr" [...]
essaie:
send "echo $env(TOTO)r"
Hum, oui, c'est en effet plus simple pour récupérer une variable. Merci, ça va déjà bien m'aider pour pas mal de choses !
Mais en fait, mon problème est plus vaste (je pensais que cet exemple suffirait, mais visiblement c'est trop simple :-) ). Si, par exemple, je veux récupérer la sortie d'un 'grep motif fichier', je fais comment ?
Évidemment, je peux jouer au bourrin et faire un script shell qui règle une variable à partir de mon grep puis qui lance un script expect qui utilise cette variable, mais, euh, comment dire... beurk. -- Rémi Moyen
Rémi Moyen
Salut,
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
En continuant à fouiller, j'ai trouvé un bout de tutorial ici : http://wiki.tcl.tk/2958
Mais si je fais le script suivant, en suivant leurs commandes : #!/usr/bin/expect -f
set prompt "$ " ;# our shell or whatever prompt we have set command "date" ;# the command whose output we want to catch spawn bash ;# spawn the bash expect "$prompt" ;# wait for prompt send "$commandr" ;# send command expect "$commandr" ;# discard command echo expect -re "(.*)r" ;# match and save the result
J'obtiens en sortie : $ ./expect_cp_music spawn bash $ date dim nov 13 18:57:53 CET 2005 echo "result: dim nov 13 18:57:53 CET 2005" $ echo "result: exit
dim nov 13 18:57:53 CET 2005" result:
dim nov 13 18:57:53 CET 2005 $ exit exit $
Ce qui montre que d'une part y'a un expect qui merde (pour qu'il collisionne le send "echo ..." avec le send exit...), mais surtout que expect_out contient aussi un saut de ligne au début !! D'autres essais me confirment ça, et du coup le résultat est inutilisable (typiquement, je ne peux pas faire un send "touch $expect_out(...)", parce que le shell reçoit "touch [return] [contenu de expect_out]").
Mais si je mets dans le expect "r(.*)r" (pour enlever le premier saut de ligne), j'ai une erreur. Et à la limite, c'est assez normal vu que le saut de ligne est déjà éliminé par le expect "$commandr". Mais ça ne me dit pas comment faire...
Buh ? -- Rémi Moyen
Salut,
Je suis en train d'essayer de jouer avec expect pour automatiser une
série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en
cherchant vainement comme ça marche...
En continuant à fouiller, j'ai trouvé un bout de tutorial ici :
http://wiki.tcl.tk/2958
Mais si je fais le script suivant, en suivant leurs commandes :
#!/usr/bin/expect -f
set prompt "$ " ;# our shell or whatever prompt we have
set command "date" ;# the command whose output we want to catch
spawn bash ;# spawn the bash
expect "$prompt" ;# wait for prompt
send "$commandr" ;# send command
expect "$commandr" ;# discard command echo
expect -re "(.*)r" ;# match and save the result
J'obtiens en sortie :
$ ./expect_cp_music
spawn bash
$ date
dim nov 13 18:57:53 CET 2005
echo "result:
dim nov 13 18:57:53 CET 2005"
$ echo "result:
exit
dim nov 13 18:57:53 CET 2005"
result:
dim nov 13 18:57:53 CET 2005
$ exit
exit
$
Ce qui montre que d'une part y'a un expect qui merde (pour qu'il
collisionne le send "echo ..." avec le send exit...), mais surtout que
expect_out contient aussi un saut de ligne au début !! D'autres essais
me confirment ça, et du coup le résultat est inutilisable (typiquement,
je ne peux pas faire un send "touch $expect_out(...)", parce que le
shell reçoit "touch [return] [contenu de expect_out]").
Mais si je mets dans le expect "r(.*)r" (pour enlever le premier saut
de ligne), j'ai une erreur. Et à la limite, c'est assez normal vu que le
saut de ligne est déjà éliminé par le expect "$commandr". Mais ça ne me
dit pas comment faire...
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
En continuant à fouiller, j'ai trouvé un bout de tutorial ici : http://wiki.tcl.tk/2958
Mais si je fais le script suivant, en suivant leurs commandes : #!/usr/bin/expect -f
set prompt "$ " ;# our shell or whatever prompt we have set command "date" ;# the command whose output we want to catch spawn bash ;# spawn the bash expect "$prompt" ;# wait for prompt send "$commandr" ;# send command expect "$commandr" ;# discard command echo expect -re "(.*)r" ;# match and save the result
J'obtiens en sortie : $ ./expect_cp_music spawn bash $ date dim nov 13 18:57:53 CET 2005 echo "result: dim nov 13 18:57:53 CET 2005" $ echo "result: exit
dim nov 13 18:57:53 CET 2005" result:
dim nov 13 18:57:53 CET 2005 $ exit exit $
Ce qui montre que d'une part y'a un expect qui merde (pour qu'il collisionne le send "echo ..." avec le send exit...), mais surtout que expect_out contient aussi un saut de ligne au début !! D'autres essais me confirment ça, et du coup le résultat est inutilisable (typiquement, je ne peux pas faire un send "touch $expect_out(...)", parce que le shell reçoit "touch [return] [contenu de expect_out]").
Mais si je mets dans le expect "r(.*)r" (pour enlever le premier saut de ligne), j'ai une erreur. Et à la limite, c'est assez normal vu que le saut de ligne est déjà éliminé par le expect "$commandr". Mais ça ne me dit pas comment faire...
Buh ? -- Rémi Moyen
Thierry Boudet
On 2005-11-13, Jean-Louis Liagre wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque
sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc, méfiance avec wget dans certains cas tordus...
-- Quand on s'approche exprès de la cage aux singes, faut pas se plaindre quand on se fait tirer la banane.
On 2005-11-13, Jean-Louis Liagre <root@localhost> wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une
série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en
cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque
sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc,
méfiance avec wget dans certains cas tordus...
--
Quand on s'approche exprès de la cage aux singes, faut pas se plaindre
quand on se fait tirer la banane.
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque
sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc, méfiance avec wget dans certains cas tordus...
-- Quand on s'approche exprès de la cage aux singes, faut pas se plaindre quand on se fait tirer la banane.
[SauronDeMordor]
On 2005-11-13, Jean-Louis Liagre wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'éne rver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque sur) un bug de wget assez vicieux, qui m'a fait galérer deux heure s:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Do nc, méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que expect qui parfois a des reponses "bizares".
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent descri pter des transferts ftp.
On 2005-11-13, Jean-Louis Liagre <root@localhost> wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une
série de transferts par ftp, mais je n'arrive guère qu'à m'éne rver en
cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque
sur) un bug de wget assez vicieux, qui m'a fait galérer deux heure s:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Do nc,
méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que expect qui parfois a des reponses "bizares".
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent descri pter des transferts ftp.
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'éne rver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque sur) un bug de wget assez vicieux, qui m'a fait galérer deux heure s:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Do nc, méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que expect qui parfois a des reponses "bizares".
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent descri pter des transferts ftp.
Thierry Boudet
On 2005-11-15, [SauronDeMordor] wrote:
Attention, je suis tombé il y a deux mois sur (j'en suis presque sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc, méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que
expect qui parfois a des reponses "bizares".
En l'occurence, le bug se manifestait sur du http.
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent descripter des transferts ftp.
ncftpget exactement.
-- "Les mégahertz, c'est comme la cylindrée : c'est pas parce que t'as la Renault Fuego que tu peux rouler plus vite qu'avec la Méhari sur la route des monts plots."
On 2005-11-15, [SauronDeMordor] <Sauron@nowhere.com> wrote:
Attention, je suis tombé il y a deux mois sur (j'en suis presque
sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc,
méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que
expect qui parfois a des reponses "bizares".
En l'occurence, le bug se manifestait sur du http.
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent
descripter des transferts ftp.
ncftpget exactement.
--
"Les mégahertz, c'est comme la cylindrée : c'est pas parce que t'as la
Renault Fuego que tu peux rouler plus vite qu'avec la Méhari sur la
route des monts plots."
Attention, je suis tombé il y a deux mois sur (j'en suis presque sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc, méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que
expect qui parfois a des reponses "bizares".
En l'occurence, le bug se manifestait sur du http.
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent descripter des transferts ftp.
ncftpget exactement.
-- "Les mégahertz, c'est comme la cylindrée : c'est pas parce que t'as la Renault Fuego que tu peux rouler plus vite qu'avec la Méhari sur la route des monts plots."
Chris
[SauronDeMordor] wrote:
On 2005-11-13, Jean-Louis Liagre wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc, méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que expect
qui parfois a des reponses "bizares".
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent descripter des transferts ftp.
Sinon perl Net::FTP est tres tres bien j'ai automatiser l'envoi quotidien de de 30 sites sur un serveur de petit fichier L'interet est de pouvoir diagnostiquer toute les etapes connexion utilisateur/mot de passe presence ou non de fichier probleme a la copie modif des droits etc...
A+ chris
[SauronDeMordor] wrote:
On 2005-11-13, Jean-Louis Liagre <root@localhost> wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une
série de transferts par ftp, mais je n'arrive guère qu'à m'énerver
en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque
sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc,
méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que expect
qui parfois a des reponses "bizares".
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent
descripter des transferts ftp.
Sinon perl Net::FTP est tres tres bien j'ai automatiser l'envoi
quotidien de de 30 sites sur un serveur de petit fichier
L'interet est de pouvoir diagnostiquer toute les etapes
connexion
utilisateur/mot de passe
presence ou non de fichier
probleme a la copie
modif des droits
etc...
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
curl et wget sont probablement plus appropriés.
Attention, je suis tombé il y a deux mois sur (j'en suis presque sur) un bug de wget assez vicieux, qui m'a fait galérer deux heures:
http://tontonth.free.fr/bug-wget.txt
J'ai envoyé un bugreport, mais je ne sais pas où ça en est. Donc, méfiance avec wget dans certains cas tordus...
pour les transferts de ftp automatique, il y a plus simple que expect
qui parfois a des reponses "bizares".
des clients "inteligents" comme yafc, ncftp, ou lftp te permettent descripter des transferts ftp.
Sinon perl Net::FTP est tres tres bien j'ai automatiser l'envoi quotidien de de 30 sites sur un serveur de petit fichier L'interet est de pouvoir diagnostiquer toute les etapes connexion utilisateur/mot de passe presence ou non de fichier probleme a la copie modif des droits etc...
Hmm... J'avoue ne pas avoir été regarder en détail, mais je ne pense pas que ça m'aide vraiment : je ne cherche pas à reproduire une session donnée (aussi complexe soit-elle), mais à générer des sessions paramétrées par des variables (du shell) et qui explorent une arborescence.
En fait, ce que je fait pour l'instant (en attendant de trouver mieux...), c'est un script shell du style :
#!/bin/bash
#une série de commandes pour explorer mon arborescence, #selectionner certains fichiers, stocker tout ça dans : VAR1=... VAR2=...
Mais je trouve ça assez moche, et en plus c'est pas du tout efficace, parce que mon expect se trouve dans une boucle for répétée pas mal de fois et que du coup je lance une nouvelle session de mon truc ftp-like à chaque fois... Bon, je pourrais optimiser les choses en écrivant un seul gros script expect, c'est vrai. Mais je trouve quand même moche d'être obligé de passer par un script shell pour générer un script expect...
Enfin bon, je vais regarder de plus près autoexpect : peut-être que c'est malgré tout la réponse à mon problème !! -- Rémi Moyen
Rémi Moyen wrote:
Buh ?
autoexpect(1)
Hmm...
J'avoue ne pas avoir été regarder en détail, mais je ne pense pas que ça
m'aide vraiment : je ne cherche pas à reproduire une session donnée
(aussi complexe soit-elle), mais à générer des sessions paramétrées par
des variables (du shell) et qui explorent une arborescence.
En fait, ce que je fait pour l'instant (en attendant de trouver
mieux...), c'est un script shell du style :
#!/bin/bash
#une série de commandes pour explorer mon arborescence,
#selectionner certains fichiers, stocker tout ça dans :
VAR1=...
VAR2=...
Mais je trouve ça assez moche, et en plus c'est pas du tout efficace,
parce que mon expect se trouve dans une boucle for répétée pas mal de
fois et que du coup je lance une nouvelle session de mon truc ftp-like à
chaque fois... Bon, je pourrais optimiser les choses en écrivant un seul
gros script expect, c'est vrai. Mais je trouve quand même moche d'être
obligé de passer par un script shell pour générer un script expect...
Enfin bon, je vais regarder de plus près autoexpect : peut-être que
c'est malgré tout la réponse à mon problème !!
--
Rémi Moyen
Hmm... J'avoue ne pas avoir été regarder en détail, mais je ne pense pas que ça m'aide vraiment : je ne cherche pas à reproduire une session donnée (aussi complexe soit-elle), mais à générer des sessions paramétrées par des variables (du shell) et qui explorent une arborescence.
En fait, ce que je fait pour l'instant (en attendant de trouver mieux...), c'est un script shell du style :
#!/bin/bash
#une série de commandes pour explorer mon arborescence, #selectionner certains fichiers, stocker tout ça dans : VAR1=... VAR2=...
Mais je trouve ça assez moche, et en plus c'est pas du tout efficace, parce que mon expect se trouve dans une boucle for répétée pas mal de fois et que du coup je lance une nouvelle session de mon truc ftp-like à chaque fois... Bon, je pourrais optimiser les choses en écrivant un seul gros script expect, c'est vrai. Mais je trouve quand même moche d'être obligé de passer par un script shell pour générer un script expect...
Enfin bon, je vais regarder de plus près autoexpect : peut-être que c'est malgré tout la réponse à mon problème !! -- Rémi Moyen
Stephane Chazelas
On Sun, 13 Nov 2005 17:51:25 +0100, Rémi Moyen wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
J'ai regardé le man, mais il est (comme souvent avec les man...) inutilisable pour apprendre à utiliser expect. [...]
Si tu lis le man dans l'ordre, tu verras qu'ils donnent des conseils de lecture de la page de man. Note qu'expect est un interpreter TCL avec des fonctions de la libexpect. Tu voudras peut-etre lire un manuel de TCL. TCL est un language assez pratique et straightforward assez bien concu (en tout cas infiniment mieux que le shell).
-- Stephane
On Sun, 13 Nov 2005 17:51:25 +0100, Rémi Moyen wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une
série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en
cherchant vainement comme ça marche...
J'ai regardé le man, mais il est (comme souvent avec les man...)
inutilisable pour apprendre à utiliser expect.
[...]
Si tu lis le man dans l'ordre, tu verras qu'ils donnent des
conseils de lecture de la page de man. Note qu'expect est un
interpreter TCL avec des fonctions de la libexpect. Tu voudras
peut-etre lire un manuel de TCL. TCL est un language assez
pratique et straightforward assez bien concu (en tout cas
infiniment mieux que le shell).
On Sun, 13 Nov 2005 17:51:25 +0100, Rémi Moyen wrote:
Je suis en train d'essayer de jouer avec expect pour automatiser une série de transferts par ftp, mais je n'arrive guère qu'à m'énerver en cherchant vainement comme ça marche...
J'ai regardé le man, mais il est (comme souvent avec les man...) inutilisable pour apprendre à utiliser expect. [...]
Si tu lis le man dans l'ordre, tu verras qu'ils donnent des conseils de lecture de la page de man. Note qu'expect est un interpreter TCL avec des fonctions de la libexpect. Tu voudras peut-etre lire un manuel de TCL. TCL est un language assez pratique et straightforward assez bien concu (en tout cas infiniment mieux que le shell).