|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 28 Apr 2004 09:03:31 To : Kirill Frolov Subject : Re: pipe script to | tclsh -------------------------------------------------------------------------------- Kirill Frolov <Kirill.Frolov@p2.f827.n5030.z2.fidonet.org> wrote: KF> #! /usr/bin/tclsh KF> set count 0 KF> proc y {} { KF> global count KF> incr count; puts $count KF> } KF> source /dev/stdin KF> и запускается так: KF> yes | ./pipetest KF> Получается, оно требует памяти больше и больше, до "победного" конца. KF> Hичего так и не выводит, то есть и не запускается. Я так понимаю, это KF> потому, что tclsh пытается загрузить скрипт целиком, а потом исполнять. KF> Почему бы ему это не делать сразу? :-/ А так неудобно получается, Потому что ты скрипт криво написал. Если бы ты вместо source /dev/stdin написал бы set command {} while {[gets stdin line]>=0} { append command "\n$line" if {[info complete $command]} { puts [eval $command] set command {} } } Выполнялось бы сразу. Семантика команды source у tcl такая - загрузить скрипт целиком. Если тебе нужна другая семантика, нужна другая команда, например ::tclreadline::Loop или вышеприведенные пять строчек. KF> "интерпретатор в интерпретаторе" делать, когда один скрипт из stdin KF> разбирает (фунцкия + аргументы, 1..N строк) и eval потом делает. :-( KF> А в какой графический "виджет" лучше всего положит список (+пара KF> кнопок в каждом элементе) с /очень большим/ числом элементов? Кроме KF> canvas. Hепонятно, что ты имеешь в виду, и зачем тебе такой список. И чем тебе не нравится canvas. В widget tour есть пример встраивания кнопок в text. Может быть это то, что тебе надо. Можно и на tktable сделать. -- Если бы козла отпущения можно было еще и доить! --- С.Е. Лец --- ifmail v.2.15dev5.3 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/151781a8e883b.html, оценка из 5, голосов 10
|