화면에 텍스트를 인쇄하는 Bash 스크립트를 작성 중입니다.
echo "Some Text"
텍스트 형식을 지정할 수 있습니까? 대담하게하고 싶습니다.
답변
가장 호환 가능한 방법은 tput
터미널에 보낼 올바른 시퀀스를 찾는 것입니다 .
bold=$(tput bold)
normal=$(tput sgr0)
당신은 변수 사용할 수 있습니다 $bold
및 $normal
형식 일에를 :
echo "this is ${bold}bold${normal} but this isn't"
준다
이것은 대담 하지만 이것은 아닙니다
답변
문자열에 스타일을 적용하려면 다음과 같은 명령을 사용할 수 있습니다.
echo -e '\033[1mYOUR_STRING\033[0m'
설명:
- echo -e- 이
-e
옵션은 이스케이프 된 (백 슬래시) 문자열이 해석됨을 의미합니다. - \ 033- 이스케이프 된 시퀀스는 스타일의 시작 / 끝을 나타냅니다.
- 소문자 m- 시퀀스의 끝을 나타냅니다
- 1- 굵은 체 속성 (자세한 내용은 아래 참조)
- [0m- 모든 속성, 색상, 서식 등을 재설정합니다.
가능한 정수는 다음과 같습니다.
- 0- 보통 스타일
- 1- 굵게
- 2- 희미
- 3- 이탤릭체
- 4- 밑줄
- 5- 깜박임
- 7- 역
- 8- 보이지 않는
답변
bash가 vt100 호환 터미널에서 실행 중이며 사용자가 서식 지원을 명시 적으로 해제하지 않은 것으로 가정합니다.
먼저 옵션을 echo
사용하여 에서 특수 문자에 대한 지원을 설정하십시오 -e
. 나중에 ESC[1m
다음과 같이 ansi escape sequence를 사용하십시오 .
echo -e "\033[1mSome Text"
ansi escape sequence에 대한 자세한 내용은 여기를 참조하십시오 : ascii-table.com/ansi-escape-sequences-vt-100.php
답변
이론적으로 그렇게 :
# BOLD
$ echo -e "\033[1mThis is a BOLD line\033[0m"
This is a BOLD line
# Using tput
tput bold
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL
# UNDERLINE
$ echo -e "\033[4mThis is a underlined line.\033[0m"
This is a underlined line.
그러나 실제로는 대신 “고강도”색상으로 해석 될 수 있습니다.
(출처 : http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html )