使用输入重定向时不打印 tclsh 命令输出

问题描述 投票:0回答:1

如果我运行

echo "set x 2 | tclsh > output.txt
,输出文件为空。但是运行
tclsh > output.txt
并在控制台中输入
set x 2
可以使其工作。

我的猜测是 tclsh 看到我正在使用输入重定向(因此会话不是交互式的),并且不会费心将返回值发送到 stdout。有什么想法让它打印出来吗?

tcl tclsh
1个回答
0
投票

命令结果的打印严格来说是

tclsh
(和
wish
)交互模式的一个功能,并且不正式被视为语言功能。 Tclsh 通过查看输入是否来自终端来确定,并相应地将
tcl_interactive
设置为布尔值。管道不是终端或控制台。

通常的建议是,如果您想要打印某些内容,请明确并自己打印:

echo 'puts [set x 2]` | tclsh >output.txt

如果您的脚本足够长,以至于您正在考虑 heredoc,请将其放入自己的文件中。这样就容易多了。

© www.soinside.com 2019 - 2024. All rights reserved.