我使用kubectl with watch,所以我可以有一个" realtime ";当我在更新pod之类的东西时,我通常会这样写:
watch -n1 kubectl get pods
现在我想使用kubecolor做同样的事情,因为输出要好得多,但是watch命令不会显示颜色,因为我正在尝试在手册页上阅读:
watch -n1 --color "kubecolor get pods"
如果运气不好,颜色不会显示:(
有人知道怎么正确地做吗?
原因是kubecolor
检测到它是非交互运行的。因此,问题不在于watch
命令,而在于kubecolor
本身,当与watch结合使用时,它会禁用颜色输出。
正如Philippe所评论的,kubecolor
命令的--force-colors
开关可以防止这种情况。
一般情况下:如果您使用的是linux操作系统,您可以使用unbuffer
使输出按预期工作。对于Debian/Ubuntu,安装expect
包来获取unbuffer
。
要使用的命令如下所示:
watch -c unbuffer kubecolor get pods
除了kubectl
(和kubecolor
)本身支持--watch
开关。不能解决所有用例,但由于它使用了API服务器监视方法,因此效率更高。