내 파일에 다음 코드 조각이 있습니다 $HOME/.bashrc
.
export RED='\e[0;31m'
export GREEN='\e[0;32m'
export YELLOW='\e[0;33m'
export BLUE='\e[0;34m'
export MAGENTA='\e[0;35m'
export CYAN='\e[0;36m'
export WHITE='\e[0;37m'
#
export BOLD_RED='\e[1;31m'
export BOLD_GREEN='\e[1;32m'
export BOLD_YELLOW='\e[1;33m'
export BOLD_BLUE='\e[1;34m'
export BOLD_MAGENTA='\e[1;35m'
export BOLD_CYAN='\e[1;36m'
export BOLD_WHITE='\e[1;37m'
#
export BLACK='\e[\030'
export RESET_COLOR='\e[m'
export RESET_TERMINAL_COLOR="tput sgr0"
이것을 모든 스크립트에서 호출할 수 있는 함수로 모듈화하고 싶습니다.
파일에서 코드를 제거 하고 $HOME/.bashrc
실행 경로에 colorize-terminal
"include"라는 파일을 만들었습니다.
#!/bin/bash
function colorize-terminal {
[The code above goes in here]
}
그리고 source colorize-terminal
스크립트에서 테스트해 보세요. 그러나 예상한 색상을 제공하지 않습니다.
내가 뭘 잘못했나요?
감사해요.
해결 방법: 아래 의견과 내가 찾은 내용을 바탕으로
colorize-terminal
하이픈을 밑줄로 바꾸려면 함수와 파일의 이름을 바꿔야 합니다 . 예를 들면 다음과 같습니다colorize_terminal
. AFAICT, 쉘 스크립트 이름은 하이픈을 허용하지만 함수는 허용하지 않습니다. 밑줄을 허용합니다.colorize_terminal
파일의 마지막 줄에 추가해야 합니다 .함수 파일을 얻은 후 테스트
echo -e ${BOLD_YELLOW}"Hello there!"${RESET_COLOR}
해 보니 예상대로 작동했습니다.로그인할 때 색상이 필요한 경우 에서 이를 수행할 수 있습니다
$HOME/.bashrc
.
답변1
@Kusalananda가 제안한 대로 여기에 내 솔루션이 있습니다.
- ~처럼여기에 설명되어 있습니다함수 이름은 문자, 숫자, 밑줄로만 구성할 수 있습니다. 하이픈은 허용되지 않습니다. 따라서
colorize-terminal
파일과 함수의 이름을colorize_terminal
.
구체적인 bash
작업 코드는 다음과 같습니다.
#!/bin/bash
function colorize_terminal {
export RED='\e[0;31m'
export GREEN='\e[0;32m'
export YELLOW='\e[0;33m'
export BLUE='\e[0;34m'
export MAGENTA='\e[0;35m'
export CYAN='\e[0;36m'
export WHITE='\e[0;37m'
#
export BOLD_RED='\e[1;31m'
export BOLD_GREEN='\e[1;32m'
export BOLD_YELLOW='\e[1;33m'
export BOLD_BLUE='\e[1;34m'
export BOLD_MAGENTA='\e[1;35m'
export BOLD_CYAN='\e[1;36m'
export BOLD_WHITE='\e[1;37m'
#
export BLACK='\e[\030'
export BOLD='\e[\033'
export RESET_COLOR='\e[m'
export RESET_TERMINAL_COLOR="tput sgr0"
}
해당 코드를 이라는 파일에 배치합니다 colorize_terminal
. 파일 경로를 지정하여 스크립트에서 호출합니다.
source /path-to-colorize-terminal/colorize_terminal
.
해당 정의는 스크립트에서 사용할 수 있습니다.
이는 다음과 같은 간단한 한 줄 명령을 사용하여 테스트할 수 있습니다.
echo -e "${BOLD_YELLOW}""Hello World!""${RESET_COLOR}"
이상적으로는 다음과 같은 줄을 포함하여 시작 시 이 기능을 갖게 됩니다.
source "$HOME/bin/colorize_terminal"
파일에 "$HOME/.bashrc
.