LINUX.ORG.RU

tclsh


0

0

Вопрос наверное тупой... Обьясните пожалуйста, почему если интерпретатор запустить в интерактивном режиме, то можно не только tcl команды использовать, но и все как в стандартном шелле, команды, конвейеры и т.д. Можно как нибудь сделать так, чтобы в скриптах тоже можно было так делать? Было бы намного удобнее...

anonymous

man n unknown -- что-то вроде -- if [ info procs unknown ] != {} { rename unknown _unknown_ } else { proc _unknown_ { name args } { error ...} } proc unknown { name args } { global auto_index if { [ info exists auto_index($name) ] } { return [ uplevel eval _unknown_ $name $args ] } else { return [ eval exec $name $args ] } } -- то есть написать свою процедуру unknown с примерно такими действиями : если первый аргумент есть в auto_index, то запустить оригинальную, иначе это видимо вызов приложения. Полезно также посмотреть код оригинальной "unknown" tclsh> info body unknown или cat $TCL_LIBRARY/init.tcl

anonymous
()

;-) вторая попытка ...

man n unknown
а далее
-- что-то вроде --
if [ info procs unknown ] != {} {
 rename unknown _unknown_
} else {
 proc _unknown_ { name args } { error ...}
}
proc unknown { name args } {
  global auto_index
  if { [ info exists auto_index($name) ] } {
    return [ uplevel eval _unknown_ $name $args ]
  } else {
    return [ eval exec $name $args ]
  }
}
--
то есть написать свою процедуру unknown с примерно такими действиями :
если первый аргумент есть в auto_index, то запустить оригинальную,
иначе это видимо вызов приложения.
Полезно также посмотреть код оригинальной "unknown"
tclsh> info body unknown
или cat $TCL_LIBRARY/init.tcl

посмотрите также wiki.tcl.tk - очень полезный ресурс

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