我有各种使用>@ stdout
和> stdout
来执行命令的命令,例如:eval exec $commandName 2>@ stderr >@ stdout <@ stdin
。其中一些使用>@
,而另一些简单地在stdout或stderr命令前面使用>
。我正在尝试制定一种通用的执行方法,我注意到如果添加@
,它将把所有内容打印到屏幕上,而没有@则不是我想要的。
我在这里阅读了eval exec的文档:https://www.tcl.tk/man/tcl/TclCmd/exec.htm#M20,我看到@
允许提供fileId,但是,如果我使用默认的stdout和stderr,它应该使如果使用@
也没有什么区别,因为根据此链接http://zetcode.com/lang/tcl/io/默认为std。
我想确保我不会遇到任何意外的错误。
答案 0 :(得分:2)
> stdout
将输出重定向到名为“ stdout”的文件,而不重定向到stdout文件描述符。
>@ stdout
将输出重定向到fileId标准输出,并将打印到当前标准输出, 通常是屏幕。