.bashrcに複数のファイルを追加する方法は?

.bashrcに複数のファイルを追加する方法は?

より簡単なバージョン管理のために、各Bash関数を別々のファイルに書き、すべてを私の.bashrc

たとえば、より強力な方法はありますか?

. ~/.bash_functions/*.sh

答え1

適切なエラーチェックで囲みます。

fn_dir=~/.bash_functions
if [ -d "$fn_dir" ]; then
    for file in "$fn_dir"/*; do
        [ -r "$file" ] && . "$file"
    done
fi

答え2

一度に複数のファイルをソーシングする場合は、リンクされた出力のリダイレクトを作成して実行できます。たとえば、次のようになります。

source <(cat ~/.bash_functions/*.sh)

強力な部分については、ソースに関係なくエラーチェックを適切に設定する必要があります。たとえば、次のようになります。

source <(cat ~/.bash_functions/*.sh)||echo "ERROR: failed while sourcing $?";exit 1

以下は、ソースファイル自体を確認することができる別のコードスニペットです。

sourced_files=$(source <(cat ~/.bash_functions/*.sh) 2>&1 > /dev/null)
if [ -n "$sourced_files" ]; then
 echo "ERROR: nonzero returned"
fi

可能であれば、ソースにエラー検証を追加し、カスタムエラーコードを使用すると、エラーが発生した場所を追跡することができればより良いでしょう。たとえば、次のようになります。

err=0
...
...
# your shell script
...
some-command-i-wanna-check
if [ "$?" -ne 0 ];then
 echo "ERROR: my failed description"
 err=101
 exit $err 
fi

関連情報