相关疑难解决方法(0)

如何让 tail -f 显示彩色输出

我希望能够跟踪服务器日志文件的输出,该文件包含以下消息:

INFO
SEVERE
Run Code Online (Sandbox Code Playgroud)

等,如果是SEVERE,则以红色显示该行;如果是INFO,则为绿色。我可以为tail帮助我执行此操作的命令设置什么样的别名?

command-line colors alias highlighting tail

298
推荐指数
10
解决办法
23万
查看次数

程序如何决定是否有彩色输出?

当我从打印彩色输出(例如lsgcc)的终端执行命令时,将打印彩色输出。根据我的理解,该过程实际上是在输出ANSI 转义码,并且终端格式化颜色。

但是,如果我由另一个进程(比如自定义 C 应用程序)执行相同的命令并将输出重定向到应用程序自己的输出,这些颜色不会持续存在。

程序如何决定是否输出彩色格式的文本?是否有一些环境变量?

shell colors process terminal

19
推荐指数
2
解决办法
2326
查看次数

如何为 shell 脚本的某些输出着色?

我写了一个小 Bash 脚本,spfquery用于检查我的域电子邮件 SPF 记录,如果它传递所有提供商的 IP 地址:

#!/bin/bash

# RED="\033[1;31m"
GREEN="\033[1;32m"
NOCOLOR="\033[0m"

email="[my email address]" # deleted for bots not to hound me

declare -a ips=("88.86.120.212" "88.86.120.223" "88.86.120.250" "88.86.120.213" "88.86.120.103" "46.234.104.23" "46.234.104.24")

echo -e "\n\n"

for ip in "${ips[@]}"
do
    echo -e "${GREEN}$ip${NOCOLOR}"
    spfquery -sender $email -ip $ip -helo kolbaba.stable.cz
    echo -e "\n\n"
done
Run Code Online (Sandbox Code Playgroud)

注意,有RED注释掉。那是因为我希望生成的消息以以下任何一个开头:

  • fail
  • softfail
  • neutral
  • unknown
  • error
  • none

即不与:

  • pass

以红色着色。

但如何做到这一点对我来说是个谜?

colors shell-script

7
推荐指数
2
解决办法
3万
查看次数