我知道这有点疯狂。我喜欢发疯。
我写了一个本地日志着色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
似乎有点工作。我可以使用j
,k
等向上和向下滚动,但搜索和:
等内容不会显示在屏幕上。但即使我看不到它,我也可以通过:q
退出。此外,着色工作。但滚动不稳定,很难进行搜索。我甚至不确定它是在做我试图进行的搜索。
我真的不明白控制命令是如何工作的,但我猜它与终端分配和/或echo无法正确解释控制字符有关。
有关如何使这项工作的任何提示?或者可以在本地使用的替代* nix工具来包装远程运行的交互式程序?