【问题标题】:Can't run same tcl code through tcl script?不能通过 tcl 脚本运行相同的 tcl 代码?
【发布时间】:2016-07-08 04:49:33
【问题描述】:

我可以从我的 Konsole 转到 tclsh 来运行相同的代码,但是当我尝试使用 tcl 脚本运行它时,它没有输出。

我有一个名为 name 的文件,其中包含此文件

my name is dev my name is vaibhav

当我通过 tclsh 运行命令时,它会给出所需的输出。

命令是exec grep "dev" name,输出是my name is dev

但是当我通过名为call.tcl 的 tcl 脚本运行它时,它没有输出!它的内容是:-

#! /usr/bin/tclsh
exec grep "dev" name

我已经在第一行验证了 tclsh 的地址,并且该文件存在于那里。我正在使用redhat-release-5Client-5.5.0.2
任何帮助将不胜感激。

谢谢
开发

【问题讨论】:

    标签: linux tcl


    【解决方案1】:

    当您使用交互式tclsh 时,将返回来自exec 命令的结果,默认情况下它们将打印在控制台中。

    但是,当您作为独立脚本运行时,它不会被打印到控制台 (stdout),除非您手动使用 puts 命令来打印它。

    puts [exec grep "dev" name]
    

    另外,您可以使用set 命令将其保存到变量中

    set result [exec grep "dev" name]
    puts $result
    

    【讨论】:

    • 另外,在 Tcl 中使用 grep 通常是错误的; Tcl 本身既擅长搜索文件,又倾向于将 grep 查找失败视为异常。
    猜你喜欢
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2017-09-06
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多