オプション読み込み機能について
$HOME/.colorecho
もしくは環境変数 $COLORECHO
で指定したディレクトリ(オプションファイルディレクトリと呼びます)にオプション値を記述したファイルを作ることでいちいちたくさんの長いオプションを指定しなくて済むようになります。
-c
オプションでどのオプション値が記述されたファイルを使用するか指定することが可能です。
環境変数$COLORECHO
が見つかったときはcolorecho
は$HOME/.colorecho
を探しません。
1. デフォルトのオプション値に関して
オプションファイルディレクトリを発見できたときだけ colorecho
は配下から default
という名前のファイルを探します。これは-c default
が指定されていなくても行われます。
もし発見できれば default
に書かれた設定値をオプションとして読み込みます。見つからなければデフォルトのオプションがないと判断し無視します。
2. 任意のオプション値について
デフォルト以外のオプションを作りたいとき(例えばあるログファイルを tail
するときに指定したいオプションをあらかじめ決めておきたいときなど)は以下のようにします。
- 1 オプションファイルディレクトリに任意の名前のファイルを生成します。例えば
$HOME/.colorecho/foo
というオプションファイルを作るとしましょう。 - 2 オプションファイルに指定したいオプション名とオプション値を書き込みます。詳しい書式は「colorecho のオプションファイルの書式」をご覧ください。
- 3 完成したオプションファイル
foo
をオプションとして読み込みたいときには-c foo
をつけて実行します。つまり-c
で指定する値はオプションファイルディレクトリ配下のファイル名のことです。
3. オプションファイルの複数読み込み
-c foo,bar
のようにカンマで区切ればオプションファイルを複数読み込むことができます。default
を指定したい場合も -c foo,bar,default
と必要する必要はいっさいありません。オプションファイルディレクトリに default
という名前のファイルがあれば -c オプション
の指定の有無に関わらず自動で読み込みます。
-c オプション
を指定しているときはオプションファイルディレクトリは必ず存在していなくてはなりません。-c オプション
を指定しているがオプションファイルディレクトリがないとき、オプションファイルディレクトリはあるが -c オプション
で指定した値のファイル名が見つからないとき colorecho
はそれぞれエラーメッセージを出し異常終了で終わります。
4. 複数指定できないオプションの優先順位について
例えば -c foo,bar
と指定した場合、まず default
が存在する場合は最初に評価されます。次に foo
が評価され bar
が評価されます。つまり default -> foo -> bar
の順で評価されます。そして最後に評価されるのがコマンドラインから指定したオプションです。
複数指定可能でないオプションが重複していた場合、後に評価されるオプションのほうが優先されます。例えば foo
ファイルで -f red
と指定していた場合でも colorecho -f green
と指定すれば文字色は後で評価される green
のほうが優先されます。複数指定ができないオプションは常に後から評価されるほうが適用されますのでコマンドラインで与えたオプションが最も優先されるのです。
5. colorecho のオプションファイルの書式
オプション名=値
という書式で指定します。- 次のオプションを指定する場合は必ず改行します。
- オプションファイル内の行頭の
# から行末まで
はコメントとして扱われます。 - オプション値をダブルクォートで囲んではいけません。ダブルクォートはそのまま文字列として評価されます。
- ダブルクォートやバックスラッシュをバックスラッシュでエスケープする必要はありません。エスケープしなくてもそのまま評価されます。
- 以下のオプションを使用することはできません。
-l
,-s
,-c
,-h
,-v
。
また、オプション名の prefixの -, --
は省略することが可能です。以下のように書くことができます。