2013-08-16 48 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

相關問題