LINUX.ORG.RU

Про Perl вопрос


0

0

Подскажите pls, как в Perl запустить внешнюю программу и потом помере того как она задает вопросы вставлять ответы Например su [user] там спрашивается password нехочу его вводить, хочу один раз написать скрипт и все. Если открыть это приложение как дескриптор, то немогу научить Perl понимать, что сейчас нужно ввести пароль - в ответ на приглашение.

anonymous

Краткий ответ - тебе нужен Expect (бывает expect на базе tcl, а бывает и Expect для perl).

Развернутый ответ - следует понимать разницу между stdin и терминалом. Ни одна более-менее разумная программа не будет читать пароль со stdin - она /dev/tty откроет. Поэтому средствами переназначения накормить пароль нельзя.

P.S. Подумай также о том, как ты будешь охранять пароль, написанный в скрипте открытым текстом от любознательных глазок. Может лучше suid-ный скрипт сделать?

vitus
()

Насколько я знаю, суидным может быть только бинарник, скрипт не может. Даже если бит установить. Для таких трюков вроде есть sperl.

anonymous
()

Expect помог. На www.perl.com есть Comm.pl она все сделала Если Vitus сюда еще заглянет Спасибо Большое за совет Как бы пообщаться my e-mail serg@bpmes.elektra.ru

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.