基本上我想要做的是在shell中传递一个tcl
命令。zsh
最常见的管道是grep
,awk
和sed
用于文本操作。
有一个选项允许直接从 shell 执行语句,而无需在文件上编写脚本perl
。ruby
-e
是否有可能实现相同的目标tcl
?
谢谢你。
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]
}
}}
如果您使用 in 调用脚本tclhelper.tcl
并定义 shell 别名:
alias tcl='tclsh tclhelper.tcl'
然后你就可以做到:
tcl -e "puts [info patchlevel]"
并看到一切正常。
可以通过将您的 tcl 一个衬管连接到tclsh
with来完成|
,例如:
echo 'puts "do_something"' | tclsh