如何防止终端损坏?

How can I prevent my terminal from breaking?

我在 docker 图像中使用 watch 命令(在 shell 脚本中)。

命令:

watch -d -t -g ls -la  ${DIR_TO_WATCH} && sleep 5  && ${COMMAND} | tee

此命令正在监视一个目录,如果目录结构有任何变化,我们将执行某些操作。

我在我的掌舵图中使用这张 docker 图像。 现在,当我部署图表并检查那个 pod 的日志时,我的终端坏了,它不再是用户友好的。

命令:

kubectl logs -f pod-name -n name-space

在此之后,我们需要重置终端设置以使终端正常运行。

有什么办法可以防止这种情况发生吗?

此致, 阿克沙特

通过将 watch 的输出发送到 /dev/null 解决了这个问题。

watch -d -t -g ls -la ${DIR_TO_WATCH} > /dev/null && sleep 5 && ${COMMAND} | tee

据我了解,终端损坏的原因是:

两个不同命令的日志(来自 watch${COMMAND} 的日志)同时出现在同一个终端上,这导致在默认终端上创建了一个新终端(我我不确定如何),导致默认终端中断。

虽然 ${COMMAND} 日志对我来说很重要,但我不需要查看或监控来自 watch 的日志。因此,我将 watch 的日志输出发送到 /dev/null,它解决了我的问题。

如果我的理解或方法有误,请指正。

谢谢。