如何获得TCL exec命令的结果(标准输出)?

Nar*_*rek 12 tcl exec

假设我有一个这样的TCL脚本:

exec ls -l 
Run Code Online (Sandbox Code Playgroud)

现在这将打印出当前目录的内容.我需要将该输出作为字符串并解析它.我怎么能这样做?

And*_*ong 12

exec 返回输出,只需设置一个变量:

set result [exec ls -l]
Run Code Online (Sandbox Code Playgroud)

但是,您可能希望将其包装为catch:

if {[catch {exec ls -l} result] == 0} { 
    # ...
} else { 
    # ... (error)
} 
Run Code Online (Sandbox Code Playgroud)

  • 此外,*特别是对于 ls*,您可能希望避免为此类事情运行子进程。它显示的所有信息都可以通过 `glob` 和 `file stat` 直接在 Tcl 中获得...... (2认同)