Dan*_*alk 1 linux shell terminal terminal-emulator fish
当在终端模拟器(例如终结器)中使用 Fish shell 以及输出大量文本的命令时,在输出上获取一些颜色编码可能会很有用。我知道脚本可以将颜色代码信息添加到输出中,例如“ grep --color=auto ”。我想可以修改鱼终端以扫描输出并将其添加到特殊位置吗?
我想要做的是,任何脚本的输出中出现的文本“错误”始终标记为红色,而“警告”始终标记为黄色。任何人都知道这是否可以通过在~/.config/fish/functions目录或类似目录中引入函数文件来实现?
这基本上是一种分层违规。通常外部命令的输出不会通过 shell 返回。它直接进入终端。
此外,您在这里所做的任何事情都有可能减慢输出速度。(并且由于鱼问题#1396,这可能相当极端)。
也就是说,如果你总是通过管道传递到这样的函数,这是可能的
function colorstuff
while read -l input
switch $input
case "*error*"
set_color red
echo $input
case "*warning*"
set_color yellow
echo $input
case "*"
set_color normal
echo $input
end
end
set_color normal
end
Run Code Online (Sandbox Code Playgroud)
像这样使用它somecommand | colorstuff。2>&1(如果您也希望将 stderr 着色,则可以添加)
在我的测试中,这会导致明显的速度减慢,即使解决了该问题,它仍然会变慢,因为它必须匹配每一行。
实际上,真正的解决方案是无论您使用什么工具来给自己着色,因为它知道输出的含义。这一切能做的就是寻找关键词。
| 归档时间: |
|
| 查看次数: |
2774 次 |
| 最近记录: |