限制ansible控制台输出中的行长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了限制ansible控制台输出中的行长度相关的知识,希望对你有一定的参考价值。

在控制台中运行ansible-playbook时,可以调整控制台窗口的大小以限制控制台输出的行长度。 ansible使用fcntl.ioctl获取TIOCGWINSZ,当它找到tty os.isatty(0)例如:(复制自/ansible/utils/display.py)

def _set_column_width(self):
    if os.isatty(0):
        tty_size = unpack('HHHH',
                       fcntl.ioctl(0, TIOCGWINSZ, pack('HHHH', 0, 0, 0, 0)))[1]
    else:
        tty_size = 0
    self.columns = max(79, tty_size - 1)

man这样的工具提供了一个环境变量MANWIDTH来提供这个,而无需调整控制台窗口的大小。

如何在不调整控制台窗口大小的情况下调整控制台输出的大小?

答案

检查ansilbes os.isatty(0)检查stdin是否打开,所以解决方案只是重定向stdin,当调用命令时,例如,我做了:

ansible-playbook -v -i dev --check --diff playbook.yml 0</dev/null

注意:这不限制模块的输出,但这是另一个故事,我想。

编辑:在函数_set_column_width中可以看到,当没有tty(stdin关闭)时,输出默认为79 char行长度。

以上是关于限制ansible控制台输出中的行长度的主要内容,如果未能解决你的问题,请参考以下文章

CCCC L1-039. 古风排版图形输出/循环控制行列/模拟/细节

markdown 代码中的行长度

源代码控制中的 Ansible SSH 私钥?

使Angular mat-table中的行数长于dataSource的长度

自定义EditText画任意行线并限制文本的物理长度

自定义EditText画任意行线并限制文本的物理长度