실행하면 로그인 화면이 생성됩니다.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!")"