Bash 스크립트의 색상 오류/경고/정보

Bash 스크립트의 색상 오류/경고/정보

그래서 다음 변수를 정의했습니다 /etc/bash.bashrc.

RS="\033[0m"    # reset
HC="\033[1m"    # hicolor
UL="\033[4m"    # underline
INV="\033[7m"   # inverse background and foreground
FBLK="\033[30m" # foreground black
FRED="\033[31m" # foreground red
FGRN="\033[32m" # foreground green
FYEL="\033[33m" # foreground yellow

내가 만들 때echo -e "$FRED Red" 프롬프트를 따르십시오, 실제로 Redgnome-terminal에서는 빨간색이 표시되지만 실행하면 다음과 같습니다.

#!/bin/bash

echo -e "$FRED Red"
echo -e "$FYEL Yellow"
echo -e "$FGRN Green"

$TERM그렇더라도 나는 모든 것을 기본 색상으로 얻습니다 xterm-256color.

스크린샷에는 정확한 출력이 포함되어 있습니다.

내가 뭘 잘못했나요?

노트:궁극적으로 스크립트 에코 오류는 빨간색으로, 경고는 노란색으로, 정보는 녹색으로 표시하고 싶습니다.

답변1

파일의 변수는 /etc/bash.bashrc내보내지지 않습니다. 이 파일은 로그인이 아닌 모든 대화형 쉘에서 읽을 수 있지만 쉘 스크립트(이러한 스크립트는 비대화형임)에서는 읽을 수 없습니다.

변수는 내보내지지 않으므로 스크립팅 환경에서 사용할 수 없습니다.

내가 제안 할게아니요배포판에서 제공하는 파일을 /etc/bash.bashrc다음과 같이 수정합니다.

  • 스크립트 자체에 변수를 추가하거나(내보낼 필요 없음)
  • 개인 .bashrc파일에 추가(및 내보내기)하거나
  • 로그인 셸의 변수를 내보내는 별도의 .sh파일 에 추가하고 내보냅니다 . /etc/profile.d로그인 쉘은 로그인할 때(또는 둘 다) 터미널 애플리케이션이나 그래픽 환경에 의해 실행됩니다.

변수를 추가하면어딘가에스크립트 자체 내(스크립트가 명시적으로 소스를 제공하지 않는 파일 내) 외에도 cron.

관련 정보