$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

その定義はスクリプトで使用できます。

これは、次の簡単な1行コマンドを使用してテストできます。

echo -e "${BOLD_YELLOW}""Hello World!""${RESET_COLOR}"

理想的には、次の行を含む起動時にこの機能があります。

source "$HOME/bin/colorize_terminal"

ファイルに"$HOME/.bashrc

おすすめ記事