You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于tput未尝试/dev/tty导致终端尺寸检测异常的问题咨询

关于tput未尝试/dev/tty导致终端尺寸检测异常的问题咨询

大家好,我碰到了一个tput命令的奇怪问题,想请各位帮忙分析下原因:

在Ubuntu 23.10系统中,我执行这条命令:

echo -e "lines\ncols" | tput -S >/tmp/xx 2>&1

不管当前终端的实际尺寸是多少,写入/tmp/xx文件里的内容始终是24\n80。

我查了tput的手册页,上面说明它会依次尝试从stderr、stdout、stdin获取终端信息,最后会 fallback 到/dev/tty,但从上面的命令结果来看,它似乎根本没去尝试/dev/tty,直接用了24x80的默认值。

有没有人能指出问题出在哪?

(补充说明:我之所以把stdout和stderr都重定向,是因为有些BSD版本的tput会把错误信息输出到stderr,我希望脚本即使在没有终端的环境下运行也能保持静默——这种情况下用默认的24x80其实是合理的,但现在有终端的时候它也用默认值就不对了)

备注:内容来源于stack exchange,提问作者jimav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 07:34:28