터미널에서 일부 도구를 사용할 node.js
때 컬러 출력에 문제가 있습니다 . 보시다시피 색상 코드 90을 사용하는 일부 텍스트는mocha
urxvt
여기터미널에서 사라집니다.
tput colors
출력은 다음과 같습니다: 256
다음 명령을 사용하세요.
(x=`tput op` y=`printf %76s`;for i in {0..256};do o=00$i;echo -e ${o:${#o}-3:3} `tput setaf $i;tput setab $i`${y// /=}(x=`tput op` y=`printf %76s`;for i in {0..256};do o=00$i;echo -e ${o:${#o}-3:3} `tput setaf $i;tput setab $i`${y// /=}$x;done)$x;done)
전 색상 다 있는 것 같아요.
그러나 내가 다음과 같이 응답하려고 하면:
echo '\e[0;90m shahin \e[m '
빈 줄이 인쇄됩니다! 이 색상 코드를 수동으로 정의하는 방법이 있습니까?
다들 감사 해요!
업데이트: 일부 이미지가 상황을 더 잘 설명할 것이라고 생각합니다. 다음은 finalterm
터미널의 echo 명령 이미지 입니다 .
결과를 여기에 배치했습니다 urxvt
.
이것이 결과이다이것 perl
동일한 컴퓨터에서 실행되는 스크립트 urxvt
:
답변1
잘못된 이스케이프 시퀀스를 사용했습니다.
가깝지만( 로 시작 escape[, 로 끝남 m) 매개변수가 잘못되었습니다.
xterm 및 유사한 터미널에서 색상을 인쇄하는 데 사용되는 SGR(선택된 그래픽 렌더링) 이스케이프 시퀀스가 세 개 이상 있습니다.
- ANSI(색상 0-7), 매개변수 30-37(전경) 및 40-47(배경) 사용
- aixterm(색상 8-15), 매개변수 90-97(전경) 및 100-107(배경) 사용
- 256색(색상 0-255), 코드 사용
38;5;
범위(전경) 및48;5;
범위(배경)
따라서 aixterm 전경색 8을 선택했습니다. 일반적으로 이러한 색상은 색상 0-7의 밝은 버전으로 나타납니다. ANSI 색상 0 예검은색. 유광블랙은...단말기에 따라 회색일수도 있습니다. 그냥 검은색일 수도 있어요.
어쩌면 다음과 같은 뜻일 수도 있습니다.
echo '\e[0;38;5;90m shahin \e[m '
이것이 이식 가능한 동안:
printf '\033[0;38;5;90m shahin \033[m \n'
추가 자료:
답변2
문제는 색상이 보이지 않는다는 것이 아니라
터미널 배경과 동일합니다(예: 어두운 회색).
기본적으로 투명한 색상이 하나 있는데, 아래에 터미널 기본 색상이 표시됩니다. 이 색상이 사용되는지는 확실하지 않습니다. 배경에 사용된 "검은색" 색상이 실제로 전경에 사용된 어두운 회색과 동일할 수도 있습니다.
가능하다면 GUI(예: konsole
또는 gnome-terminal
)를 사용하여 색상 설정을 쉽게 실험할 수 있고 변경할 수 있는 내용을 명확하게 보여주는 터미널을 엽니다. 아니면 그냥 시험해 보고 rxvt-unicode
맞는지 확인해 보세요 .
해결책은 아니더라도 적어도 무엇이 잘못되었는지는 알 수 있을 것 같습니다.
아직 해결되지 않은 경우 여기에 새 정보를 제공해 주시면 세부 사항을 해결해 드리겠습니다.
참고 사항:
복사하여 붙여넣기를 통해 작업하라는 긴 명령을 얻지 못했지만 다음과 같을 수 있습니다.
colortest-256
colortest
우분투 등의 패키지
시도해 보십시오 colortest-16
. 문제를 설명하는 데 도움이 될 수 있습니다.
그렇지 않다면 스크린샷을 찍어주세요!