LINUX.ORG.RU

Ответ на: комментарий от tyamur

Точнее, shell.sh выполняется 5 минут, например. 1 строка сообщений в секунду. Нет возможности ждать полного выполнения sheel.sh для присваивания всего выхлопа переменной.

macumazan ★★ ()
Последнее исправление: macumazan (всего исправлений: 1)
Ответ на: комментарий от macumazan

Тогда можно использовать open вместо exec.

foreach item $items {
    set fd [open "| shell.sh"]
    while {[gets $fd line] >= 0} {
        puts $line
    }
    close $fd
}
А вставку через каждые 50 строк попробуй сам.

TeopeTuK ★★★ ()
set the_end false
set pipe [ open "|shell.sh" RDWR ]
fileevent $pipe readable {
  if [ catch { set s [ gets $pipe] } msg ] {
     # shell.sh завершился
     puts stderr "final ? $msg"
     set the_end true
     return
  }
  puts $s
  incr count
  if { $count == 50 } {
     puts "ПОЛСТА"
  }
}
vwait the_end
catch {close $pipe}
MKuznetsov ★★★★★ ()
Последнее исправление: MKuznetsov (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.