proc my_proc {} { puts "Hello World!" }
Как вывести содержимое этого процесса в файл? Я знаю, что «info body my_proc» может распечатать содержимое на экране. Я попробовал следующее, но не повезло.
redirect [info body my_proc] > filename.txt
Чтобы иметь возможность (в основном) воссоздать процесс, попробуйте следующее:
set procname "my_proc" set procedure [list proc $procname [info args $procname] [info body $procname]] puts $procedure
Я говорю "в основном", потому что info args не выдает никаких значений по умолчанию для аргументов. Об этом см. https://core.tcl.tk/tips/doc/trunk/tip/65.md, который я написал и оставил (шокирующе) 17 лет назад.
info args
Просто используйте [puts]:
[puts]
set f [open filename.txt w] puts $f [info body my_proc] close $f
Я знаю, что 'info body my_proc' может печатать содержимое на экране.
[info] некоманда ввода / вывода.Он служит для самоанализа и возвращает тело скрипта ("proc proc") процедуры Tcl в виде строки.[puts] затем «печатает» заданное строковое значение в канал ввода / вывода.
[info]