【问题标题】:linux "watch -c" (with color parameter), but commands display colorless output. Why?linux“watch -c”(带有颜色参数),但命令显示无色输出。为什么?
【发布时间】:2016-07-13 07:42:51
【问题描述】:

当我执行 'ls' 或 'service some_service_name status' 或任何其他带有彩色输出的命令时,它“令人惊讶”:) 以彩色显示它的输出,但是当我使用 'watch' 运行它们时,甚至使用带有颜色启用参数的“watch -c”命令,它们仍然显示没有颜色。

为什么?以及如何解决?

【问题讨论】:

    标签: linux terminal command-line-interface


    【解决方案1】:

    ls 和其他人看到它们是从脚本运行的,因此它们进入默认模式(无颜色):

    使用 --color=auto,ls 仅在标准输出连接到终端时发出颜色代码。

    尝试强制颜色输出:

    watch -c ls --color
    

    【讨论】:

    • 好的,我明白了,它适用于 ls,但是“服务”命令有颜色选项吗? “人工服务”与此无关。
    • 我发现 'service' 命令只是一个执行 systemctl 的 bash 脚本,但 'man systemctl' 也没有显示任何关于颜色的内容。
    • 这些命令检查它是交互式(tty)还是非交互式并且在其他情况下不显示颜色,我不确定是否有办法强制它们显示总是
    • 下面是如何伪装一个 tty:stackoverflow.com/questions/32910661/…
    • 谢谢,这给了我解决问题的方法。示例中的 faketty 对我不起作用,但@至少,我现在知道该看哪个方向,我现在将阅读一些关于 tty 的信息。
    猜你喜欢
    • 2011-04-17
    • 2013-12-16
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2014-01-21
    相关资源
    最近更新 更多