개요
XNUMXD덴탈의 echo
명령은 주어진 문자열을 표준 출력 파이프, 일반적으로 터미널을 가리킵니다. 표준 출력 파이프가 다른 인터페이스를 가리킬 수 있지만 echo
명령은 일반적으로 터미널에서 메시지를 인쇄하고 표시하는 데 사용됩니다. 기본적으로 표시된 메시지의 텍스트는 터미널의 다른 텍스트 색상을 상속합니다(자체적으로 사용자 정의 가능). 그러나 – 출력 색상을 변경할 수 있는 몇 가지 방법이 있습니다. echo
– 개별 문자열과 전체 메시지 모두에 대해.
이 짧은 가이드에서는 출력 색상을 변경하는 방법을 살펴보겠습니다.
echo
Linux 기반 시스템에서 ANSI 이스케이프 코드를 사용하여tput
Bash 스크립트에서 이 프로세스를 덜 장황하게 만드는 방법.
ANSI 이스케이프 코드로 출력 색상 변경
색상을 변경하는 가장 쉬운 방법은 ANSI 이스케이프 시퀀스/코드를 사용하는 것입니다. 모든 ANSI 이스케이프 코드는 Escape
다양한 형태로 표현할 수 있는 캐릭터 – 27
십진수로, x1B
컨트롤 키로 XNUMX진수로 ^[
및 33
XNUMX진수 형식으로. 그런 다음 시퀀스 뒤에 다음 명령이 옵니다.
33[command
여는 괄호(제어 시퀀스 도입기)는 선택 사항이지만 이스케이프 문자에서 명령을 구분하는 데 도움이 됩니다. 당신이 넣을 때 컬러 코드 명령으로 다가오는 텍스트의 색상을 변경합니다.
33[0;34
0;34
예를 들어 파란색의 코드입니다. 이것만으로도 텍스트 색상을 변경할 수 있습니다. echo
와:
33[0;34Text
어디에 Text
파란색으로 표시됩니다. 또는 인쇄할 간단한 bash 스크립트를 고려하십시오. "프랑스에 어서 오세요" 프랑스 국기의 색상:
#!/bin/bash
BLUE='33[0;34m'
WHITE= '33[0;37m'
RED= '33[0;31m'
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"
선택적 -e
의 국기 echo
명령을 사용하면 다음과 같은 특수 문자를 사용할 수 있습니다. n
(줄 바꿈) 및 t
(탭) 입력 문자열 내부.
스크립트를 실행하면:
$ ./colors.sh
결과 :
ANSI 코드는 색상에 국한되지 않고 스타일에도 적용될 수 있습니다. 코드 0..9
텍스트 스타일을 나타내는 반면 코드는 30...37
색상을 나타냅니다:
색상 | 코드 | 텍스트 스타일 | 코드 |
검정 | 30 | 간단한 텍스트 | 0 |
빨간색 | 31 | 굵은 글씨체 | 1 |
초록색 | 32 | 저강도 텍스트 | 2 |
브라운 / 오렌지 | 33 | 밑줄 텍스트 | 4 |
파란색 | 34 | 깜박이는 텍스트 | 5 |
보라색 | 35 | 보이지 않는 텍스트 | 8 |
청록색 | 36 | 취소선 텍스트 | 9 |
라이트 그레이 | 37 |
다음 옵션 중 일부를 살펴보기 위해 bash 스크립트를 만들어 보겠습니다.
#!/bin/bash
echo -e "33[0;33mSample text"
echo -e "33[1;33mBold text"
echo -e "33[2;33mLow intensity text"
echo -e "33[4;33mUnderline text"
echo -e "33[5;33mBlinking text"
echo -e "33[8;33mInvisible text"
echo -e "33[9;33mStrikethrough text"
이 스크립트를 실행하면 다음이 발생합니다.
모범 사례, 업계에서 인정하는 표준 및 포함된 치트 시트가 포함된 Git 학습에 대한 실습 가이드를 확인하십시오. 인터넷 검색 Git 명령을 중지하고 실제로 배움 이것!
마찬가지로 코드를 사용하여 이러한 텍스트의 배경색을 변경할 수 있습니다. 40..47
:
색 | 코드 |
검정 | 40 |
빨간색 | 41 |
초록색 | 42 |
브라운 / 오렌지 | 43 |
파란색 | 44 |
보라색 | 45 |
청록색 | 46 |
라이트 그레이 | 47 |
주어진 문자열의 배경을 변경하는 것은 글꼴 색상을 변경할 때와 동일한 규칙으로 귀결됩니다. 즉, 코드 자체가 동작을 변경합니다.
#!/bin/bash
BLUE='33[0;44m'
BLACK='33[0;30m'
WHITE='33[0;30;47m'
RED='33[0;41m'
echo -e "${BLUE}Welcome ${WHITE}to ${RED}France"
참고 : 일반적으로 10을 추가하여 글꼴 색상을 배경 색상으로 변환할 수 있습니다. 30
검은색 글꼴 색상이며, 40
검정색 배경색입니다.
tput으로 출력 색상 변경
ANSI 코드의 대안은 다음을 사용하는 것입니다. tput
명령:
$ tput setaf color_code
setf
8가지 색상을 허용하는 반면 setaf
256색을 허용하므로 사용 중인 명령에 따라 0..7
과 0..255
색상 코드로. 모두 명령 바치다 0..7
동일한 색상 코드로 setaf
, 8..15
강도가 높은 색상이며, 16..231
처음 8의 다른 색조이며, 232..255
그레이스케일 색상:
신용 : 위키 백과
마지막으로, tput
또한 다른 명령을 사용하여 배경색 변경, 굵게 추가, 강도 낮추기 등을 수행할 수 있습니다.
텍스트 스타일 | 명령 |
전경색 | 세트 |
배경색 | 세탭 |
스타일 없음 | sgv0 |
굵은 글씨체 | 일시: XNUMX년 XNUMX월 XNUMX일 화요일 XNUMX:XNUMXpm - XNUMX:XNUMXpm 장소: 여의도 페어몬트 앰배서더 서울 호텔 XNUMXF 아잘레아스 룸 [약도] 행사 문의: info.korea@rescale.com |
저강도 텍스트 | 어둑한 |
밑줄 텍스트 | 스물 |
깜박이는 텍스트 | 깜박 거리다 |
텍스트 반전 | 회전 |
다음을 사용하는 다른 스크립트를 만들어 봅시다. tput
출력 색상을 변경하려면 echo
:
#!/bin/bash
YELLOW=`tput setaf 3`
echo "${YELLOW}Changing"
WHITE=`tput setaf 7 bold`
echo "${WHITE}Colors"
BLUE=`tput setaf 4 smul`
echo "${BLUE}With tput"
CYAN=`tput setaf 6 blink`
echo "${CYAN}is less"
RED=`tput setab 1 setaf 7`
echo "${RED}verbose!"
이 스크립트는 터미널에 다음 출력을 인쇄합니다.
tput 명령은 간단한 색상 코드를 통해 모든 색상을 인쇄하는 쉬운 방법을 제공합니다. 이제 tput 명령에 사용할 수 있는 모든 색상 코드를 인쇄할 수 있는 스크립트를 작성해 보겠습니다.
#!/bin/bash
tput init
end = $ (($ (tput colors) - 1))
w = 1
for c
in $ (seq 0 $end)
do
eval "$(printf " tput setaf % 3 s " " $c ")"
echo - n "$_"
[[$c - ge $ ((w * 2))]]
offset = 2 || offset = 0
[[$ (((c + offset) % (w - offset))) - eq $ (((w - offset) - 1))]]
echo
done
tput init
0에서 255까지의 색상과 해당 코드를 인쇄합니다.
결론
이 짧은 가이드에서는 색상을 변경하는 방법을 살펴보았습니다. echo
의 Linux 출력 – ANSI 이스케이프 시퀀스 및 tput
명령.
또한 Bash 변수를 사용하여 프로세스를 덜 장황하게 만들고 배경색과 스타일 텍스트를 조정하는 방법도 살펴보았습니다.