bash - Tcl 脚本中的 exec 命令静默执行
问题描述
我想在 tcl 脚本中执行以下命令。该命令与特定工具有关。
exec tool cut Netlists/$::env(DESIGN_NAME).netlist.v
当上述命令在运行 tcl 脚本时执行,其相应的输出不会显示在终端上。
当我尝试在 tcl shell 中运行此命令时,它工作正常。
有没有办法在终端上打印结果?
解决方案
如果希望将输出定向到终端,则需要添加重定向(否则输出将成为exec
命令的 Tcl 结果)。这是通过附加来完成的>@stdout 2>@stderr
(您通常希望重定向输出和错误流)。
exec tool cut Netlists/$::env(DESIGN_NAME).netlist.v >@stdout 2>@stderr
如果您要经常这样做,那么有一个辅助程序会有所帮助:
proc tool {args} {
# You might do other things here, like logging what command was actually called
exec tool {*}$args >@stdout 2>@stderr
}
tool cut Netlists/$::env(DESIGN_NAME).netlist.v
推荐阅读
- python - 尽管可能有结局,但广度的算法永远运行
- r - 将图例移出情节区域(素食套餐)
- python - Errno 2 从子文件夹导入 python 脚本时没有此类文件或目录错误
- python - 如何接受 GET 请求并将其转换为 JSON 对象?
- excel - 复制和粘贴行但不覆盖隐藏的行
- pytorch - 如何在 PyTorch Lightning 中编写多个训练设置
- c++ - CPP 中的模板类完全特化:“错误:聚合的类型不完整,无法定义”g++
- r - 创建双变量概率密度以从 R 中采样
- machine-learning - 没有数据增强的keras ImageDataGenerator?
- api - 如何将 stm32f3discovery API 传递给函数?