【问题标题】:Color output of last command in terminal终端中最后一个命令的颜色输出
【发布时间】:2017-06-20 05:51:59
【问题描述】:

当我在 mac 上的终端中读取 bash 命令的输出时,我发现很难找到命令输出的开始位置。我想将最新命令的输出涂成红色,然后当我运行新命令时,只有该命令的输出为红色,而先前命令的输出为黑色。

编辑:

举个例子,

echo hi
hi <- should be red

然后当我输入另一个命令时

echo hi
hi <- should be black
echo 'hi there'
hi there <- should be red

【问题讨论】:

  • 一种常见的技术是为提示添加颜色。例如,在 PS1 的开头,包含\033[01;31m 使您的提示变为红色,然后在 PS1 的末尾加上 \033[01;32m 以将文本转换为绿色。您还需要在颜色命令周围添加 \[\] 括号,以便 bash 可以正确计算提示的长度并将光标定位在正确的位置。
  • 只是一个问题:为什么这个问题不好?我在问如何在 mac 终端中做某事。这是一个非常具体的项目,并且有一个具体的答案。它与编程有关。
  • 它不遵循How to Ask 的规则,包括提供minimal reproducible example。我个人无法解析句子I would like to color the output of the last command in red and and then when I run a new command, have the rest of the output be recolored to black and the new latest output be red。 “其余”是什么意思?它与“最新的”相同还是其他?您是否尝试在后台同时运行 2 个命令,每个命令交错输出不同的颜色或执行其他操作? minimal reproducible example 将非常有用。
  • 那么请举个例子,不要投反对票。如果您只单击向下箭头,我无法改进问题。我会假设“其余的”显然是从以前的命令输出的。
  • 我没有投反对票,我回答了你的问题,询问你的问题有什么问题,在回复中我确实要求举个例子。不,一点也不明显。所以你想运行一个命令,让它的输出以红色显示在你的屏幕上,然后运行第二个命令,让当前以红色显示的前一个命令的输出变为黑色,并显示新命令的输出红色的?我当然不会想到这就是你要的!祝你好运...

标签: bash macos shell unix awk


【解决方案1】:

这是一个执行此操作的 shell 函数:

xtrace() {
  awk '
  BEGIN {
    d = "\47"; printf "\33[36m"
    while (++q < ARGC) {
      x = split(ARGV[q], y, d); y[1]
      for (z in y) {
        printf "%s%s", !x || y[z] ~ "[^[:alnum:]%+,./:=@_-]" ? d y[z] d : y[z],
        z < x ? "\\" d : ""
      }
      printf q == ARGC - 1 ? "\33[m\n" : FS
    }
  }
  ' "$@"
  "$@"
}

把它放在你的 ~/.profile 或类似文件中,然后像这样运行:

$ xtrace echo alfa 'bravo charlie'
echo alfa 'bravo charlie'
alfa bravo charlie

命令将以蓝色打印,然后是命令的输出 正常打印。

Source

【讨论】:

    【解决方案2】:

    这不是完全你问的,但终端有一个称为“标记”的功能。默认情况下,它会自动标记窗口中的每个命令行。标记在窗口边缘显示为模糊的方括号([、])。

    您可以使用“编辑”>“导航”菜单中的项目在标记之间跳转。对这些菜单项使用键盘快捷键最为方便,例如 ⌘↑ 用于跳转到上一个标记。如果按住 Shift 键,则会更改为 Select to Previous Mark。这些可以更容易找到命令输出的开头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 2019-12-04
      • 2012-08-04
      • 1970-01-01
      • 2013-12-16
      • 2015-06-13
      • 2021-01-31
      相关资源
      最近更新 更多