着色远程输出

时间:2017-08-25 20:27:53

标签: bash pty

我知道这有点疯狂。我喜欢发疯。

我写了一个本地日志着色bash函数。我决定作为一个实验,当我ssh到服务器并在其中一个日志上运行less时,我想尝试使用它来着色输出。我可以使用tail成功完成此操作,但不能使用less。有没有办法在本地使用我的bash函数来着色通过ssh返回的较少输出?这就是我的尝试:

function colorwrap {
   while read -r line; do
      echo "$line" | colorlog
      #printf "$line" | colorlog
   done < <("$@")
}

像这样调用它:

colorwrap ssh -t servername -C less /logs/server.log   

echo似乎有点工作。我可以使用jk等向上和向下滚动,但搜索和:等内容不会显示在屏幕上。但即使我看不到它,我也可以通过:q退出。此外,着色工作。但滚动不稳定,很难进行搜索。我甚至不确定它是在做我试图进行的搜索。

我真的不明白控制命令是如何工作的,但我猜它与终端分配和/或echo无法正确解释控制字符有关。

有关如何使这项工作的任何提示?或者可以在本地使用的替代* nix工具来包装远程运行的交互式程序?

0 个答案:

没有答案