gpt4 book ai didi

scripting - 在这段 TCL 代码中,这个特定片段的作用是什么

转载 作者:行者123 更新时间:2023-12-02 22:53:09 24 4
gpt4 key购买 nike

我很好奇这个“2>@ stderr <@ stdin”在 TCL 的这段代码中做了什么:

if {[catch {eval exec $listCmds 2>@ stderr <@ stdin } cmdList] } { …

据我所知,catch 运行内部大括号 {} 中的命令,并将输出存储在 cmdList 中。如果成功,则不会输入 if 语句,如果不成功,则会输入。 PS:我有 C++ 背景。

最佳答案

eval exec $listCmds运行一个单独的程序,其名称和参数取自变量 listCmds。 (实际上,更现代、更安全的习惯用法是 exec {*}$listCmds )。

2>@ stderr将此程序的标准错误输出重定向到 Tcl 脚本的标准错误 channel ,请参阅 https://www.tcl.tk/man/tcl/TclCmd/exec.htm#M20 .

<@ stdin从Tcl脚本的标准输入 channel 重定向该程序的标准输入,参见https://www.tcl.tk/man/tcl/TclCmd/exec.htm#M11 .

关于scripting - 在这段 TCL 代码中,这个特定片段的作用是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com