私のファイルには次のコードスニペットがあります$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
。
その定義はスクリプトで使用できます。
これは、次の簡単な1行コマンドを使用してテストできます。
echo -e "${BOLD_YELLOW}""Hello World!""${RESET_COLOR}"
理想的には、次の行を含む起動時にこの機能があります。
source "$HOME/bin/colorize_terminal"
ファイルに"$HOME/.bashrc
。