如何在set
不在屏幕上打印输出的情况下执行命令?我想在不显示屏幕上的内容的情况下读取文件.
set a [open "giri.txt" r]
set b [read $ifile]
Run Code Online (Sandbox Code Playgroud)
kos*_*tix 11
您正在观察的只是交互式 Tcl shell 的标准行为:每个Tcl命令都返回一个结果值和一个返回码.如果Tcl shell是交互式的(即,其输入和输出流连接到终端),则在执行每个命令后,将打印返回的命令的结果值的字符串表示形式,然后再次显示提示.如果shell不是交互式的,则不会打印任何结果,也不会显示提示.
(另一方面,这种行为在解释器中无处不在 - 各种Unix shell,Python和Ruby解释器都做同样的事情.)
如果你想在交互式会话中禁止这样的打印输出(不时派上用场),一个简单的黑客就是用"静默"命令链接你想要"静音"的命令(产生一个字符串的值)表示是一个空字符串),例如:
set a [open "giri.txt" r]; list
Run Code Online (Sandbox Code Playgroud)
这里,list
没有参数的命令返回的列表是一个空列表,其字符串表示形式为空字符串.在交互式shell中,这一系列命令几乎不输出任何内容.
需要重申的是,在交互式会话中可能只需要这样的黑客攻击- 不要在脚本中使用它.
归档时间: |
|
查看次数: |
8466 次 |
最近记录: |