关于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
相关产品推荐
相关产品推荐

