URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 12251
[ Назад ]

Исходное сообщение
"OpenNews: Новое ПО: empty - утилита для автоматизации интерактивных операций"

Отправлено opennews , 19-Сен-05 14:07 
Утилита empty (http://empty.sourceforge.net) предназначена для замены TCL/Expect, т.е. позволяет запускать и управлять интерактивными программами из sh-скриптов.


Пример кода на empty
:

#!/bin/sh
empty -f -i in -o out telnet foo.bar.com
empty -w -i out -o in "ogin:" "luser"
empty -w -i out -o in "assword:" "TopSecret"
empty -s -o in "who am i"
empty -s -o in "exit"


Тоже самое на expect
:

#!/usr/bin/expect
spawn telnet foo.bar.com
expect ogin {send luser\r}
expect assword {send TopSecret\r}
send "who am i\r"
send "exit\r"
expect eof

На perl:

#!/usr/bin/perl
use Expect;
my $exp = Expect->spawn("telnet foo.bar.com");
$exp->expect($timeout,
        [ 'ogin: $' => sub {
                     $exp->send("luser\n");
                     exp_continue; }
        ],
        [ 'assword:$' => sub {
                      $exp->send("TopSecret\n");
                      exp_continue; }
        ],
        '-re', qr'[#>:] $'
);
$exp->send("who am i\n");
$exp->send("exit\n");
$exp->soft_close();


На Python:

#!/usr/local/bin/python

import pexpect

child = pexpect.spawn('telnet foo.bar.com');

child.expect('ogin: ');
child.sendline('luser');

child.expect('assword:');
child.sendline('TopSecret');

child.sendline('who am i');
child.sendline('exit');

child.expect(pexpect.EOF);

print child.before;


URL: http://empty.sourceforge.net
Новость: http://www.opennet.me/opennews/art.shtml?num=6108


Содержание

Сообщения в этом обсуждении
"Новое ПО: empty - утилита для автоматизации интерактивных операций"
Отправлено reaper , 19-Сен-05 14:07 
http://www.opennet.me/base/dev/interactive_tools.txt.html не оно?

"Новое ПО: empty - утилита для автоматизации интерактивных операций"
Отправлено Chris , 19-Сен-05 14:10 
Вопрос, а будет ли нормально дожидаться конца вывода? Можно ли будет куданить вывод заворачивать, чтобы видеть что она там наделала? Потому как Expect насчет этого полное г.

"Новое ПО: empty - утилита для автоматизации интерактивных операций"
Отправлено mezantrop , 19-Сен-05 14:18 
Создается два пайпа: один для ввода другой для вывода. Впринципе, никто не мешает писать в первый  (например припомощи echo) и читать из второго (при помощи cat, например)

"Новое ПО: empty - утилита для автоматизации интерактивных операций"
Отправлено mezantrop , 20-Сен-05 10:06 
Если вы вдруг начали использовать empty, очень прошу сообщить мне на email zmey20000@yahoo.com или, зная ленность людей, сюда в форум (надеюсь, Maxim Chirkov поймет и не будет сильно против) следующую информацию:
а. свой uname -a
б. если не слишком сложно, что вам понравилось в empty, а что нет.

Хочется знать, на что ориентироваться в следующих версиях.


"Новое ПО: empty - утилита для автоматизации интерактивных операций"
Отправлено spektom , 21-Сен-05 14:53 
Было бы прикольно, если бы работа с PTY была вынесена в отдельную библиотеку libempty - я бы заюзал с удовольствием. А то libexpect тяжеленный, да и TCL просит, кажись...

"Новое ПО: empty - утилита для автоматизации интерактивных оп..."
Отправлено mezantrop , 21-Сен-05 17:29 
задумаюсь, но в планы не входило.

"Новое ПО: empty - утилита для автоматизации интерактивных операций"
Отправлено Storm , 22-Сен-05 18:10 
PTY позволит работать с ssh с паролями, года два назад делал расширение для php, почти аналогично приведенному для Python

"Новое ПО: empty - утилита для автоматизации интерактивных операций"
Отправлено Аноним , 19-Мрт-08 21:01 
2 Storm
если сохранилось решение для php - поделитесь?