Figlet의 색상 변수!

Figlet의 색상 변수!

실행하면 로그인 화면이 생성됩니다.CLI 아치 리눅스이 파일에 스크립트를 작성했습니다.

/etc/bash.bashrc

이와 같이:

#COMMANDS CREATED INSIDE /ETC/BASH.BASHRC FILE
# USING ANSI COLORS
RED="\e[31m"
ORANGE="\e[33m"
BLUE="\e[94m"
GREEN="\e[92m"
STOP="\e[0m"


# LOGIN SCREEN MESSAGE 
screenfetch
printf "${GREEN}"
printf "=================================\n"
printf "${ORANGE}"
figlet -w 200 -f standard "F4NT0 ARCH LINUX"
printf "${BLUE}"
figlet -w 200 -f  small "CLI Operational System"
printf "${GREEN}"
printf "=================================\n"
printf "${STOP}"

위 코드에서 색상을 호출하는 변수를 만든 다음"방법을 제공"다음을 사용하여 생성된 메시지에 대해Figut 절차사용인쇄 기능.

이렇게 하면 마지막 변수 호출까지 메시지 색상을 지정할 수 있으며(아래 메시지는 위 변수에서 호출한 색상과 동일하게 유지됨) 다음 변수를 호출하면 코드가 다음 메시지 색상을 변경합니다. 까지멈추다색상 누출을 방지하기 위한 변수입니다.

로그인 편지

내 아치에서 작동하는 방식은 마음에 들지만 프로그래밍 가능성은 "더럽다"고 생각합니다...

Unix/Linux의 스크립트에 색상을 더 완벽하게 추가하기 위해 figlet 명령(ANSI, tput 또는 기타)에 색상을 추가하는 방법이 있습니까?

답변1

이 질문에서 제가 보여준 방식은 Figlet에 색상을 넣는 가장 좋은 방법입니다. 명령 앞에 색상을 넣는 방법이 작동하도록 하는 유일한 방법입니다. 다음 색상을 호출한 후 다음 줄은 새로운 색상이 됩니다. ! !

궁금한 사람이 있을 경우를 대비해 제가 색상을 호출하는 방식은 다음과 같은 ANSI 색상 코드를 사용하는 것입니다.

일반 색상:

  • \e[30m = 검정색
  • \e[31m = 빨간색
  • \e[32m = 녹색
  • \e[33m = 노란색
  • \e[34m = 파란색
  • \e[35m = 보라색
  • \e[36m = 청록색
  • \e[37m = 흰색

밝은 색:

  • \e[90 = 연한 검정색
  • \e[91 = 연한 빨간색
  • \e[92 = 연한 녹색
  • \e[93 = 연한 노란색
  • \e[94 = 하늘색
  • \e[95 = 연한 보라색
  • \e[96 = 연한 청록색
  • \e[97 = 밝은 흰색

내가 사용한 방법은 유일한 방법도 아니고 완전한 방법도 아닙니다.

ANSI 색상에 대한 전체 정보를 보려면 다음 웹사이트를 읽어보십시오.

https://misc.flogisoft.com/bash/tip_colors_and_formatting

변수 정보:

  • 혼동을 피하기 위한 최선의 방법이므로 색상 이름을 모두 대문자로 썼습니다.

녹색 = "\e[92m"

  • 생성된 변수를 호출하려면 ${} 구조를 사용하여 Vaiable 값을 캡처해야 합니다.

${녹색}

  • 명령 전에 색상을 표시하려면 printf를 사용하여 색상을 누출해야 합니다(나는 Printf를 사용하지만 에코도 작동할 것이라고 생각합니다).

printf "${녹색}"

  • 화면에 인쇄되는 내용의 다음 줄에는 변수의 색상이 표시됩니다.

printf "${녹색}"

Figlet -f 표준 "이것은 녹색입니다"

텍스트는 다음과 같아야 합니다.

시험

  • 발생해서는 안 되는 색상 누출을 방지하려면 다음 두 단계를 수행하십시오.
    • 새로운 색상을 추가하려면 새로운 색상을 호출하세요.
    • 색상을 중지하려면 다음 변수를 사용하십시오.

      중지="\e[0m"

      • 마지막에 Stop을 입력하고 그 후에는 다음과 같이 색상을 변경하고 싶지 않습니다.

      printf "${정지}"

답변2

다음 패턴을 사용하는 것이 좋습니다.

RED_B='\e[1;91m'
GREEN_B='\e[1;92m'
YELLOW_B='\e[1;93m'
BLUE_B='\e[1;94m'
PURPLE_B='\e[1;95m'
CYAN_B='\e[1;96m'
WHITE_B='\e[1;97m'
RESET='\e[0m'

red() { echo -e "${RED_B}${1}${RESET}"; }
green() { echo -e "${GREEN_B}${1}${RESET}"; }
yellow() { echo -e "${YELLOW_B}${1}${RESET}"; }
blue() { echo -e "${BLUE_B}${1}${RESET}"; }
purple() { echo -e "${PURPLE_B}${1}${RESET}"; }
cyan() { echo -e "${CYAN_B}${1}${RESET}"; }
white() { echo -e "${WHITE_B}${1}${RESET}"; }

그런 다음 Figlet 명령을 color 함수의 인수로 전달할 수 있습니다.

bash-5.0# green "$(figlet -f big "Hello!")"

여기에 이미지 설명을 입력하세요.

관련 정보