그래서 다음 변수를 정의했습니다 /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"
프롬프트를 따르십시오, 실제로 Red
gnome-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
.