**已关闭。**此问题为not about programming or software development。目前不接受回答。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
12小时前关门了
Improve this question的
我希望smem
捕获整个输出即命令名应完全捕获终端宽度不可知。
我看到-a
选项在那里,但它与当前终端宽度捆绑在一起。
我想使用自定义宽度,为此,我尝试下面的事情设置subprocess.check_output()
中的env={'COLUMNS':'512'}
,但这不是只适用于smem
命令,适用于top
命令。smem
的宽度应该和512
一样,但它只取终端宽度。
使用Linux
环境
1条答案
按热度按时间dy1byipe1#
如果你说的是https://selenic.com/repo/smem,那么源代码似乎根本没有注意到
COLUMNS
变量,但是许多其他工具都支持这个变量。相反,该工具调用
stty size
并期望接收两个整数。作为一个粗略的解决方法,你可以破解你自己的 Package 器。也许像这样:
字符串
如果您将其保存到
/usr/local/bin/stty
(和chmod +x
等)中,它将重定向到/usr/bin
中的真实的stty
,除非您设置了三个变量COLUMNS
、ROWS
和STTY_FORCE_COLUMNS_ROWS
。型
一个更好的解决方案是
smem
允许您import
其代码(它也是用Python编写的);但是代码目前的设计方式,您实际上不能。