2013-08-16 45 views
1

基本上我想要做的是在zsh shell中管一个tcl命令。对于文本操作,最常见的管道是grep,awksed如何在bash或zsh shell中输入tcl命令?

随着perlruby存在-e选项,允许直接从shell中执行语句,而不必在文件上写的脚本。

是否有可能在tcl中实现同样的功能?

谢谢。

+1

不完全是,但期望有'-e'。 –

+0

在我的系统上希望可以使用'-c'选项。 – milarepa

回答

3

tclsh没有像-e任何东西;这是一个非常简单的Tcl库包装。

可以模拟有一个这样的脚本:

apply {{} { 
    global argv0 argv argc 
    if {[lindex $argv 0] eq "-e"} { 
     set script [lindex $argv 1] 
     set argv [lrange $argv 2 end] 
     incr argc -2 
     uplevel #0 $script 
    } else { 
     set argv0 [lindex $argv 0] 
     set argv [lrange $argv 1 end] 
     incr argc -1 
     uplevel #0 [list source $argv0] 
    } 
}} 

如果您在名为tclhelper.tcl使一个脚本与和定义外壳别名:

alias tcl='tclsh tclhelper.tcl' 

然后你会能够做到:

tcl -e "puts [info patchlevel]" 

and se事情工作。

+1

谢谢。这工作。 – milarepa

1

它可以通过与|,前管道您的TCL一个衬垫tclsh进行:

echo 'puts "do_something"' | tclsh 
+0

它也可以工作,但脚本更整齐。谢谢 – milarepa

相关问题