인터넷을 통해 나는에 정의 된 모든 색상으로 많은 것들을 인쇄하는 스크립트를 가진 많은 사람들을 보았습니다 ~/.Xdefaults
. 그러나 이것을 사용하려고하면 항상 얻습니다 error: Bad Substitution
. 누구든지 똑같은 일을하는 작업 스크립트가 있습니까?
결국 다음과 같이 보일 것입니다.
인터넷을 통해 나는에 정의 된 모든 색상으로 많은 것들을 인쇄하는 스크립트를 가진 많은 사람들을 보았습니다 ~/.Xdefaults
. 그러나 이것을 사용하려고하면 항상 얻습니다 error: Bad Substitution
. 누구든지 똑같은 일을하는 작업 스크립트가 있습니까?
결국 다음과 같이 보일 것입니다.
답변:
Bash 만 사용하는 솔루션은 다음과 같습니다.
for x in {0..8}; do
for i in {30..37}; do
for a in {40..47}; do
echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "
done
echo
done
done
echo ""
짧막 한 농담:
for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""
Cygwin의 사진은 다음과 같습니다.
{30..37}
동일하며 `seq 30 37`
더 빠릅니다.
for x in 0 1 4 5 7 8; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo "";
내 버전은 다음과 같습니다.
#!/usr/bin/env python
import sys
terse = "-t" in sys.argv[1:] or "--terse" in sys.argv[1:]
write = sys.stdout.write
for i in range(2 if terse else 10):
for j in range(30, 38):
for k in range(40, 48):
if terse:
write("\33[%d;%d;%dm%d;%d;%d\33[m " % (i, j, k, i, j, k))
else:
write("%d;%d;%d: \33[%d;%d;%dm Hello, World! \33[m \n" %
(i, j, k, i, j, k,))
write("\n")
이것은 모든 것을 인쇄합니다 . 멋진 테이블 (스타일 (0) 및 (1), 일반 및 굵은 체 만 표시)을 원하면 -t
or --terse
인수를 사용할 수 있습니다 .
'깜박임'스타일 (5)은 gnome-terminal에서 작동하지 않습니다. ;-)
이것이 효과가 없다면 다른 문제가있는 것입니다. 테스트 한 후에 알려주십시오.
DULL=0 BRIGHT=1 FG_WHITE=37 WHITE="\[$ESC[${DULL};${FG_WHITE}m\]"
왜 흐릿한 흰색 ( 0;37;40
)이 흰색보다 회색이고 밝은 흰색 ( 1;37;40
)이 굵게 표시됩니까? 터미널 글꼴을 굵게 표시하지 않고 밝은 흰색-검정색으로 설정하고 싶습니다. 나는 당신의 스크립트를 실행하면 1;37;40
완벽하게 무사 보이는 첫 번째 줄 이후 : 5img.com/img13/740/24screenshot.png~~V 것은 그래서, 내 PS1 라인 텍스트의 색상입니다 0;30;40
; 의 색으로 부탁합니다 0;30;41
.
대부분의 사람들에게 적합한 간단한 원 라이너.
msgcat --color=test
--color=test
msgcat 맨 페이지 에서도 언급 할 수 없었 습니다. 나는 그것을 구성 할 수없는 부활절 달걀이라고 생각합니다.
--color=test
은 섹션 9.11.2에 언급되어 있습니다.info msgcat
나는 그것을 위해 작은 스크립트 를 만들었다 :)
당신은 숫자를 전달하고 각 색상의 ansi 색인과 함께 컬러 라인을 n
뱉어냅니다 n
(에서 사용할 수 있습니다 $(tput setaf <ansi-index>)
).
다음은 (부분) 출력의 스크린 샷입니다.
나는 또한 이것을 가지고 twerth 에서 포크 (그리고 약간 수정)했다 .
#!/usr/bin/env bash
echo -e "\033[0mNC (No color)"
echo -e "\033[1;37mWHITE\t\033[0;30mBLACK"
echo -e "\033[0;34mBLUE\t\033[1;34mLIGHT_BLUE"
echo -e "\033[0;32mGREEN\t\033[1;32mLIGHT_GREEN"
echo -e "\033[0;36mCYAN\t\033[1;36mLIGHT_CYAN"
echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED"
echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE"
echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW"
echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"
… 내 현재 주제에서 다음을 보여줍니다.
#!/usr/bin/env sh
좋은 생각은 아닙니다. 우분투의 기본 쉘 인 대시에서는 작동하지 않습니다. 나는 그것을 bash로 바꿔야했다.
최근에는 많은 사람들이 자신을 언급하고있는 스크립트를 찾고 싶었습니다. tldp.org Bash Prompt HOWTO- http: //tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html에서 가져온 것 입니다. 이 스크립트는 Daniel Crisman이 작성했습니다.
그것은 질문에서 그림과 정확히 동일하게 출력됩니다. 스크립트 자체 :
#!/bin/bash
#
# This file echoes a bunch of color codes to the
# terminal to demonstrate what's available. Each
# line is the color code of one forground color,
# out of 17 (default + 16 escapes), followed by a
# test use of that color on all nine background
# colors (default + 8 escapes).
#
T='gYw' # The test text
echo -e "\n 40m 41m 42m 43m\
44m 45m 46m 47m";
for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \
'1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \
' 36m' '1;36m' ' 37m' '1;37m';
do FG=${FGs// /}
echo -en " $FGs \033[$FG $T "
for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
do echo -en "$EINS \033[$FG\033[$BG $T \033[0m";
done
echo;
done
echo
https://askubuntu.com/a/396555/41013 참조 BOLD, UNDERLINE, Highlighting 및 색상과 같은 형식으로 다음 출력을 인쇄합니다.
이것은 TLDP 스크립트의 수정 된 버전입니다 여기 . 표준 색상 과 생생한 색상 (코드 90-97 및 100-107)을 보여줍니다 .
#!/bin/bash
# Show available terminal colours.
# Heavily modified version of the TLDP script here:
# http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
print_colors(){
# Print column headers.
printf "%-4s " '' ${bgs[@]}
echo
# Print rows.
for bold in ${bolds[@]}; do
for fg in ${fgs[@]}; do
# Print row header
printf "%s;%s " $bold $fg
# Print cells.
for bg in ${bgs[@]}; do
# Print cell.
printf "\e[%s;%s;%sm%s\e[0m " $bold $fg $bg "text"
done
echo
done
done
}
# Print standard colors.
bolds=( 0 1 )
fgs=( 3{0..7} )
bgs=( 4{0..8} )
print_colors
# Print vivid colors.
bolds=( 0 ) # Bold vivid is the same as bold normal.
fgs=( 9{0..7} )
bgs=( 10{0..8} )
print_colors
출력 예 :
이 질문은 실제로 터미널에서 색상 코드를 표시하는 방법을 검색 할 때 가장 좋은 결과입니다. 그래서 저는 정의를 내리고 OP가 정확히 찾던 것을주고 싶었습니다. 스크린 샷이 다소 친숙하다는 것을 기억합니다. 처음에 나는 그것이 Gogh 에서 온 것이라고 생각 했지만 조금 다릅니다. 그런 다음 iTerm2 colors 에서 사용되는 것과 정확히 동일한 스크립트임을 깨달았습니다 .
운, 그들은 원래의 출처에 대한 코멘트 추가 로를
iTerm2 에서 원본 크레딧으로 가져온 참조를 위해 스크립트를 게시하고 있습니다.
#!/bin/bash
#
# This file echoes a bunch of color codes to the
# terminal to demonstrate what's available. Each
# line is the color code of one forground color,
# out of 17 (default + 16 escapes), followed by a
# test use of that color on all nine background
# colors (default + 8 escapes).
#
# Copied from http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
T='gYw' # The test text
echo -e "\n 40m 41m 42m 43m\
44m 45m 46m 47m";
for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \
'1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \
' 36m' '1;36m' ' 37m' '1;37m';
do FG=${FGs// /}
echo -en " $FGs \033[$FG $T "
for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
do echo -en "$EINS \033[$FG\033[$BG $T \033[0m";
done
echo;
done
echo
작동하는 스크립트는 다음과 같습니다.