dotfiles 等を使って.bashrcなどの設定ファイルを共通で管理することが流行ってますが、 使う環境によって設定を変えたいことがあります。
少しのことであれば.bashrcの中で環境に沿って分岐を作って書いたりしても良いかもしれませんが、 共通のファイルはなるべく綺麗にしておきたいので 個別の設定は別のファイルに書いてそれを読み込む様にしています。
その際のちょっとした工夫などについて。
source_file
以下の様な関数を.bashrc/.zshrcの最初の方で定義しておきます。
1 2 3 4 5 6 7 8 9 10 11 |
|
この関数では与えられたファイルがあって読み込み可能ならsource
し、
そうでない場合は何もしません。
これを使って以下の様な設定を書いています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
/etc/bashrcの読み込みは.bashrcで他の設定をする前の最初の方、 他のファイルに関しては一番最後に書いています。
/etc/bashrcは大概のシステムにありますが そのシステムにおいて読み込んでおくと便利なものが多いのであれば読み込みます。
.linuxrc、.macrc、.winrcは それぞれLinux、Mac、Windows (Cygwin)用の設定ファイルで これらは dotfiles で管理していてどの環境にも置かれるようになってます。 (ただし現状.linuxrcはありません。)
なのでOSTYPE
でチェックしてその環境にある時にsource
しています。
最後の.localrcは個別の環境で必要な設定で、 必要がある場合はこのファイルを作って中に設定を書きます。 これは dotfiles とは独立にその場で作ることになります。
必要がない環境ではファイルを作らなければ上の関数によって何も読まれないままになるだけです。