$HOME/.bashrc의 코드를 함수로 변환

$HOME/.bashrc의 코드를 함수로 변환

내 파일에 다음 코드 조각이 있습니다 $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스크립트에서 테스트해 보세요. 그러나 예상한 색상을 제공하지 않습니다.

내가 뭘 잘못했나요?

감사해요.

해결 방법: 아래 의견과 내가 찾은 내용을 바탕으로

  1. colorize-terminal하이픈을 밑줄로 바꾸려면 함수와 파일의 이름을 바꿔야 합니다 . 예를 들면 다음과 같습니다 colorize_terminal. AFAICT, 쉘 스크립트 이름은 하이픈을 허용하지만 함수는 허용하지 않습니다. 밑줄을 허용합니다.

  2. colorize_terminal파일의 마지막 줄에 추가해야 합니다 .

  3. 함수 파일을 얻은 후 테스트 echo -e ${BOLD_YELLOW}"Hello there!"${RESET_COLOR}해 보니 예상대로 작동했습니다.

  4. 로그인할 때 색상이 필요한 경우 에서 이를 수행할 수 있습니다 $HOME/.bashrc.

답변1

@Kusalananda가 제안한 대로 여기에 내 솔루션이 있습니다.

  1. ~처럼여기에 설명되어 있습니다함수 이름은 문자, 숫자, 밑줄로만 구성할 수 있습니다. 하이픈은 허용되지 않습니다. 따라서 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.

관련 정보