다음 이전 차례

2. ls의 색상 설정은 어떻게 하는가?

이 쉘 스크립트(저에게 bash버젼을 보내주신 분께 대단히 감사드립니다.) 모든 표준 색상을 출력합니다. 만약 아무런 색상도 나타나지 않는 다면 독자의 콘솔(= 터미널:역자주)이 ANSI를 지원하지 못하기 때문일 겁니다.


       #!/bin/bash
       # 안시 컬러 출력!
       #
       esc="\033["
       echo -e "\t  40\t   41\t   42\t    43\t      44       45\t46\t 47"
       for fore in 30 31 32 33 34 35 36 37; do
         line1="$fore  "
         line2="    "
         for back in 40 41 42 43 44 45 46 47; do
           line1="${line1}${esc}${back};${fore}m 보톨  ${esc}0m"
           line2="${line2}${esc}${back};${fore};1m 밝은    ${esc}0m"
         # 역자주 : ^[[30;30m .or. ^[[30;30;1m  <-- 예임
         done
         echo -e "$line1\n$line2"
       done

역자 주: 독자가 이 파일을 볼때는 esc="\033["이라고 나타날 것입니다. 하지만 이것이 아니고 "^[["입니다. 왜 틀리게 나타나는 지는 정확히 모르겠지만 다른 파일 시스탬을 오가면서 변경된 것으로 생각됩니다. 입력할때는 "^[["를 그냥 입력하는 것이 아니라 "컨트롤-v-ESC키-["입니 다. 이 것은 쉘 커맨드나 vi 에디터에서 쓰는 것이고 이맥스에서는 "C-q -ESC키-["입니다. 유의 하세요. :)
    전경색(글자색)의 색상번로는 리스트 왼편에 나타나고, 배경색은 맨 꼭대기에 나
   타 납니다.(한마디로 표형식입니다:역자주) 밝은 글자을 원하신다면 ANSI파라미터
   에 ";1m"을 덧붙치면 됩니다. 완전한 ANSI지정 순서는 다음과 같습니다.
  
    ESC[30;40;1m     <- ESC[ 는 ^[[을 말합니다. 이스케이프 문자입니다.: 역자주
  

유의점: 현재로서는 배경색을 밝은 색을 이용할 수 없습니다, 그래서 노란색(밝 은 갈색)같은 색을 사용할 수 없습니다. 하드웨어의 한계입니다. (Xterm에서의 실행결과와는 다소 차이가 있습니다:역자주)
다음 이전 차례