Re: почему тормозит скрипт expect
On 2013-04-26, Владимир Скубриев wrote: > !/usr/bin/expect -f > > spawn kdb5_ldap_util stashsrvpw -D cn=admin,dc=example,dc=lab -w > password -f /etc/krb5kdc/service.keyfile cn=kdc,ou=krb5,dc=example,dc=lab > expect -re "^Password.*" > send "password\r"; > sleep 1 > expect -re "^Re.*" > send "password\r"; > send "\n" > expect eof > exit > > Причем зависает он на несколько секунд после того, как выведет на экран Вторую > просьбу о вводе пароля для проверки его с первым > > Т.е. на фразе > > Re-enter password for "cn=kdc,ou=krb5,dc=example,dc=lab": > > но потом нормально завершается скрипт. Вопрос в том, почему зависает в конце > то ? > Простите что позно отвечаю (( Если с expect возникают "странности", сразу включаем режим отладки: exp_internal 1 Далее у вас expect -re "^Re.*" Портит все - шапочка. '.*' не все сожрала из буфера expect (размер которого 2000 байт, что не влезно - то потеряно). Сравните как в ман страничке вычитываю пользовательский ввод ('\n' гарантирует "жадность"): expect_user -re "(.*)\n" По умолчанию задержка 10 секунд. Сравните с тем сколько у Вас )). Меняется так: set timeout 30 Еще у expect скриптов обычно используют стиль без -ge или -re. Т.е. просто: expect Password send password\r expect Re-enter Наличие sleep 1 говорит о плохо спроектированом скрипте. В Вашем случае просто удалите строку - лишняя... > И еще посоветуйте что почитать по expect'у только на русском и чтобы типа > wiki с примерами. А то что в гугле ни чего подходящего и на русском не нашел. > Чтобы быстро вспомнить синтаксис я пользуюсь (автор - вежливая женщина - я отправлял замечание по опечаткам): http://inguza.com/document/expect-and-tcl-mini-reference-manual Учится можно по "Exploring expect", у меня пол книги заняло неделю... Бытрее - если вдумчиво по примерам с оффициального сайта: http://expect.sourceforge.net/#examples заглядывая в man страницу... -- Best regards! -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/874ndy1wj6@gavenkoa.example.com
Re: почему тормозит скрипт expect
Владимир Скубриев -> debian-russian@lists.debian.org @ Fri, 26 Apr 2013 13:13:13 +0400: ВС> !/usr/bin/expect -f ВС> spawn kdb5_ldap_util stashsrvpw -D cn=admin,dc=example,dc=lab -w ВС> password -f /etc/krb5kdc/service.keyfile cn=kdc,ou=krb5,dc=example,dc=lab ВС> expect -re "^Password.*" ВС> send "password\r"; ВС> sleep 1 ВС> expect -re "^Re.*" ВС> send "password\r"; ВС> send "\n" ВС> expect eof ВС> exit ВС> Причем зависает он на несколько секунд после того, как выведет на экран Вторую ВС> просьбу о вводе пароля для проверки его с первым ВС> Т.е. на фразе ВС> Re-enter password for "cn=kdc,ou=krb5,dc=example,dc=lab": ВС> но потом нормально завершается скрипт. Вопрос в том, почему зависает в конце ВС> то ? Встречный вопрос: а зачем после второго send "password\r"; идет send "\n" ? Если оно там по делу, то почему \n, а не \r? Вполне возможно, что дело не в этом, но это место в скрипте выглядит странно. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/8761z85lbj@wizzle.ran.pp.ru
Re: почему тормозит скрипт expect
On 26.04.2013 13:13, Владимир Скубриев wrote: !/usr/bin/expect -f spawn kdb5_ldap_util stashsrvpw -D cn=admin,dc=example,dc=lab -w password -f /etc/krb5kdc/service.keyfile cn=kdc,ou=krb5,dc=example,dc=lab expect -re "^Password.*" send "password\r"; sleep 1 expect -re "^Re.*" send "password\r"; send "\n" expect eof exit Причем зависает он на несколько секунд после того, как выведет на экран Вторую просьбу о вводе пароля для проверки его с первым Т.е. на фразе Re-enter password for "cn=kdc,ou=krb5,dc=example,dc=lab": но потом нормально завершается скрипт. Вопрос в том, почему зависает в конце то ? Да кто ж его знает, но могу посоветовать autoexpect из expect-dev - полезная штука. И еще посоветуйте что почитать по expect'у только на русском и чтобы типа wiki с примерами. А то что в гугле ни чего подходящего и на русском не нашел. На русском наврядли, на английском есть книжка "Exploring Expect", даже в электронном виде можно найти. Спасибо. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/517a54a8.10...@gmail.com
почему тормозит скрипт expect
!/usr/bin/expect -f spawn kdb5_ldap_util stashsrvpw -D cn=admin,dc=example,dc=lab -w password -f /etc/krb5kdc/service.keyfile cn=kdc,ou=krb5,dc=example,dc=lab expect -re "^Password.*" send "password\r"; sleep 1 expect -re "^Re.*" send "password\r"; send "\n" expect eof exit Причем зависает он на несколько секунд после того, как выведет на экран Вторую просьбу о вводе пароля для проверки его с первым Т.е. на фразе Re-enter password for "cn=kdc,ou=krb5,dc=example,dc=lab": но потом нормально завершается скрипт. Вопрос в том, почему зависает в конце то ? И еще посоветуйте что почитать по expect'у только на русском и чтобы типа wiki с примерами. А то что в гугле ни чего подходящего и на русском не нашел. Спасибо. -- С Уважением, специалист по техническому и программному обеспечению, системный администратор Скубриев Владимир ~~~ Россия, Ростовская область, г. Таганрог тел. моб: +7 (918) 504 38 20 skype: v.skubriev icq: 214-800-502 www: skubriev.ru -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/517a4529.2020...@skubriev.ru