【发布时间】:2019-03-12 05:11:51
【问题描述】:
Bash 提供了选项 -v --verbose,它在读取到 stderr 时将命令写入。
需要突出显示此输出。
目前的解决方案
bash -v script 2> >(sed $'s,.*,\e[38;5;123m&\e[m,' >&2)
突出显示 stderr 中的所有内容。
所以问题是将-v 输出与其他stderr 分开。
加法。
bash 有BASH_XTRACEFD,可用于突出显示-x(xtrace) 输出。
更新:这种重定向也违反了命令/响应的顺序 - 响应可以出现在命令之前。
所以目前的解决方案是不突出任何内容。
Upd2.:使用expect 似乎是个好主意 - 与交互式程序进行编程对话..
【问题讨论】:
-
有趣的概念!为了提高可读性(或不提高可读性),我使用了“/bin/bash -v 2> >( grep --color .)”。
-
这将突出显示传递给 stderr 的任何内容。就像我目前的简单丑陋解决方案:(