bash - bash,用 kubecolor 监视命令
问题描述
我将 kubectl 与 watch 一起使用,因此我可以在更新 pod 和其他内容时“实时”查看我正在做的事情,通常我会这样:
watch -n1 kubectl get pods
现在我想使用 kubecolor 做同样的事情,因为输出要好得多,但是 watch 命令不会显示颜色,正如我在我正在尝试的手册页上阅读的那样:
watch -n1 --color "kubecolor get pods"
没有任何运气,颜色不会显示:(
有人知道如何正确地做到这一点吗?
解决方案
原因是kubecolor
检测到它以非交互方式运行。因此问题不在于watch
命令,而kubecolor
在于与 watch 结合使用时禁用颜色输出的本身。
正如 Philippe 所评论的--force-colors
,该kubecolor
命令的开关可以防止这种情况。
一般来说:如果您使用的是 linux 操作系统,则可以使用unbuffer
使输出按预期工作。对于 Debian/Ubuntu 安装expect
软件包以获得unbuffer
.
然后,要使用的命令可能如下所示:
watch -c unbuffer kubecolor get pods
除此之外kubectl
(和kubecolor
)支持--watch
开关本身。不能解决所有用例,但由于它使用 API 服务器监视方法,因此效率更高。