基本上我要做的是在tcl
shell中管道zsh
命令。对于文本操作,最常见的管道是grep
,awk
和sed
。
perl
和ruby
有-e
选项,允许直接从shell执行语句而无需在文件上编写脚本。
是否可以在tcl
中实现相同的目标?
谢谢。
答案 0 :(得分: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
的脚本创建脚本并定义shell别名:
alias tcl='tclsh tclhelper.tcl'
然后你就能做到:
tcl -e "puts [info patchlevel]"
看到事情有效。
答案 1 :(得分:1)
可以通过使用tclsh
将您的tcl one liner传输到|
来完成,例如:
echo 'puts "do_something"' | tclsh