如何像在 oh-my-zsh 中那样在终端中为徽标着色

How to colored logo in terminal like in oh-my-zsh

我使用 oh-my-zsh,更新后它显示了漂亮的徽标:

我创建了简单的脚本并询问 Whosebug 用户如何获得徽标的彩色输出?

#!/bin/bash

logo(){
  #can't have a bash script without a cool logo :D
  echo '
  _
 | | __ _ ____ _   _ _ __ ___  ___  ___  _ __
 | |/ _  |_  /| | | |  __/ _ \/ __|/ _ \|  _ \
 | | (_|  / / | | | | | |  __/ (__  (_) | | | |
 |_|\__ _|___/ \__  |_|  \___|\___|\___/|_| |_|
               |___/
'
}

main(){
  logo
}
main 

查看oh-my-zsh升级脚本的来源:

https://github.com/ohmyzsh/ohmyzsh/blob/master/tools/upgrade.sh

这部分脚本负责显示标志:

  printf '%s         %s__      %s           %s        %s       %s     %s__   %s\n' $RB_RED $RB_ORANGE $RB_YELLOW $RB_GREEN $RB_BLUE $RB_INDIGO $RB_VIOLET $RB_RESET
  printf '%s  ____  %s/ /_    %s ____ ___  %s__  __  %s ____  %s_____%s/ /_  %s\n' $RB_RED $RB_ORANGE $RB_YELLOW $RB_GREEN $RB_BLUE $RB_INDIGO $RB_VIOLET $RB_RESET
  printf '%s / __ \%s/ __ \  %s / __ `__ \%s/ / / / %s /_  / %s/ ___/%s __ \ %s\n' $RB_RED $RB_ORANGE $RB_YELLOW $RB_GREEN $RB_BLUE $RB_INDIGO $RB_VIOLET $RB_RESET
  printf '%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s   / /_%s(__  )%s / / / %s\n' $RB_RED $RB_ORANGE $RB_YELLOW $RB_GREEN $RB_BLUE $RB_INDIGO $RB_VIOLET $RB_RESET
  printf '%s\____/%s_/ /_/ %s /_/ /_/ /_/%s\__, / %s   /___/%s____/%s_/ /_/  %s\n' $RB_RED $RB_ORANGE $RB_YELLOW $RB_GREEN $RB_BLUE $RB_INDIGO $RB_VIOLET $RB_RESET
  printf '%s    %s        %s           %s /____/ %s       %s     %s          %s\n' $RB_RED $RB_ORANGE $RB_YELLOW $RB_GREEN $RB_BLUE $RB_INDIGO $RB_VIOLET $RB_RESET

您必须在需要不同颜色的徽标的每个部分之前插入颜色转义序列。转义序列定义如下:

  RB_RED=$(printf '3[38;5;196m')
  RB_ORANGE=$(printf '3[38;5;202m')
  RB_YELLOW=$(printf '3[38;5;226m')
  RB_GREEN=$(printf '3[38;5;082m')
  RB_BLUE=$(printf '3[38;5;021m')
  RB_INDIGO=$(printf '3[38;5;093m')
  RB_VIOLET=$(printf '3[38;5;163m')

有关详细信息,请参阅脚本源。