Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash或zsh shell中传递tcl命令?_Shell_Tcl_Pipe - Fatal编程技术网

如何在bash或zsh shell中传递tcl命令?

如何在bash或zsh shell中传递tcl命令?,shell,tcl,pipe,Shell,Tcl,Pipe,基本上,我试图做的是在zshshell中传递tcl命令。最常见的管道是用于文本操作的grep、awk和sed 使用perl和ruby有-e选项,它允许直接从shell执行语句,而无需在文件上编写脚本 在tcl中是否可以实现相同的功能 谢谢。可以通过管道将tcl one衬里连接到tclsh,例如: echo 'puts "do_something"' | tclsh 可以通过管道将tcl one liner连接到tclsh,例如: echo 'puts "do_something"' | tcl

基本上,我试图做的是在
zsh
shell中传递
tcl
命令。最常见的管道是用于文本操作的
grep
awk
sed

使用
perl
ruby
-e
选项,它允许直接从shell执行语句,而无需在文件上编写脚本

tcl
中是否可以实现相同的功能


谢谢。

可以通过管道将tcl one衬里连接到
tclsh
,例如:

echo 'puts "do_something"' | tclsh

可以通过管道将tcl one liner连接到
tclsh
,例如:

echo 'puts "do_something"' | tclsh

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]"

然后看看事情的进展。

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]"

并查看工作情况。

不完全正确,但expect具有
-e
。在我的系统上,expect使用
-c
选项。不完全正确,但expect具有
-e
。在我的系统上,expect使用
-c
选项。