Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: pipe script to | tclsh   Victor Wagner   28 Apr 2004 09:03:31 
Архивное /ru.linux/151781a8e883b.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional