Expect howto
Résolu
tlep
Messages postés
596
Date d'inscription
Statut
Membre
Dernière intervention
-
tlep Messages postés 596 Date d'inscription Statut Membre Dernière intervention -
tlep Messages postés 596 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je veux exécuter automatiquement des commandes svn (subversion) qui sont par défaut interactives.
Je pense pour celà utiliser expect, mais celui-ci doit recevoir deux arguments que j'ai nommés $1 et $2 comme en shell :
#!/usr/bin/expect -f
set force_conservative 1 ;
set timeout 2
svn mkdir --editor-cmd "echo $1" svn://192.168.10.10/mysqlsubversion/trunk/subversion/$2
expect "a)nnule, c)ontinue, e)dite\r"
send -- "c\r"
~
Le problème est que expect n'est pas capable d'interpréter ces arguemnts.
can't read "1": no such variable
while executing
"svn mkdir --editor-cmd "echo $1" svn://192.168.10.10/mysqlsubversion/trunk/subversion/$2"
Avez-vous une solution ?
Merci :-)
je veux exécuter automatiquement des commandes svn (subversion) qui sont par défaut interactives.
Je pense pour celà utiliser expect, mais celui-ci doit recevoir deux arguments que j'ai nommés $1 et $2 comme en shell :
#!/usr/bin/expect -f
set force_conservative 1 ;
set timeout 2
svn mkdir --editor-cmd "echo $1" svn://192.168.10.10/mysqlsubversion/trunk/subversion/$2
expect "a)nnule, c)ontinue, e)dite\r"
send -- "c\r"
~
Le problème est que expect n'est pas capable d'interpréter ces arguemnts.
can't read "1": no such variable
while executing
"svn mkdir --editor-cmd "echo $1" svn://192.168.10.10/mysqlsubversion/trunk/subversion/$2"
Avez-vous une solution ?
Merci :-)
3 réponses
Je venais de le voir merci :-)
j'ai fait comme suit:
#!/usr/bin/expect -f
set COMMENTAIRE [lindex $argv 0]
set REPERTOIRE [lindex $argv 1]
set force_conservative 1 ;
set timeout 5;
spawn svn mkdir --editor-cmd "echo "$COMMENTAIRE"" svn://192.168.10.10/mysqlsubversion/trunk/subversion/"$REPERTOIRE\r"
expect "a)nnule, c)ontinue, e)dite"
send -- "a\r"
exit
Mais j'obtiens cette erreur :
extra characters after close-quote
while executing
"spawn svn mkdir --editor-cmd "echo "$COMMENTAIRE"" svn://192.168.10.10/mysqlsubversion/trunk/subversion/"$REPERTOIRE\r"
expect "a)nnule, c)ontinue, e..."
(file "./testexpect" line 9)
:-((
j'ai fait comme suit:
#!/usr/bin/expect -f
set COMMENTAIRE [lindex $argv 0]
set REPERTOIRE [lindex $argv 1]
set force_conservative 1 ;
set timeout 5;
spawn svn mkdir --editor-cmd "echo "$COMMENTAIRE"" svn://192.168.10.10/mysqlsubversion/trunk/subversion/"$REPERTOIRE\r"
expect "a)nnule, c)ontinue, e)dite"
send -- "a\r"
exit
Mais j'obtiens cette erreur :
extra characters after close-quote
while executing
"spawn svn mkdir --editor-cmd "echo "$COMMENTAIRE"" svn://192.168.10.10/mysqlsubversion/trunk/subversion/"$REPERTOIRE\r"
expect "a)nnule, c)ontinue, e..."
(file "./testexpect" line 9)
:-((
Oui en fait il fallait mettre
spawn svn mkdir --editor-cmd "echo \"$COMMENTAIRE\"" svn://192.168.10.10/mysqlsubversion/trunk/subversion/"$REPERTOIRE"
http://www.gnu.org/ :
Always escape punctuation, such as `(' or `"', in your patterns; for example, write `\('. If you forget to escape punctuation, you will usually see an error message like `extra characters after close-quote'
Merci pour tout ;-)
spawn svn mkdir --editor-cmd "echo \"$COMMENTAIRE\"" svn://192.168.10.10/mysqlsubversion/trunk/subversion/"$REPERTOIRE"
http://www.gnu.org/ :
Always escape punctuation, such as `(' or `"', in your patterns; for example, write `\('. If you forget to escape punctuation, you will usually see an error message like `extra characters after close-quote'
Merci pour tout ;-)