bashrcファイルを編集して保存するたびに、「source .bashrc」を自動的に実行できますか?
ベストアンサー1
同じ方法もう一つの答え.bashrcへのエディタの呼び出しを2段階のプロセスに置き換える関数が作成されることを明記してください。
- .bashrcでエディタを開きます。
- ソース.bashrc
たとえば、
vibashrc() { vi $HOME/.bashrc; source $HOME/.bashrc; }
これにはいくつかの欠点があります。
vibashrc
これにより、購入するたびに入力する必要があることを覚えておく必要があります。- 現在のbashウィンドウでのみ発生します。
- 変更するかどうかにかかわらず.bashrcを取得しようとします。
別のオプションはbashに接続することです。プロンプトコマンド.bashrcファイルが更新されたことを確認するたびに(そして次のプロンプトが表示される前に)、すべての/すべてのbashシェルから.bashrc機能をインポートします。
.bashrc ファイルに次のコードを追加するか、既存の PROMPT_COMMAND 関数を拡張できます。
prompt_command() {
# initialize the timestamp, if it isn't already
_bashrc_timestamp=${_bashrc_timestamp:-$(stat -c %Y "$HOME/.bashrc")}
# if it's been modified, test and load it
if [[ $(stat -c %Y "$HOME/.bashrc") -gt $_bashrc_timestamp ]]
then
# only load it if `-n` succeeds ...
if $BASH -n "$HOME/.bashrc" >& /dev/null
then
source "$HOME/.bashrc"
else
printf "Error in $HOME/.bashrc; not sourcing it\n" >&2
fi
# ... but update the timestamp regardless
_bashrc_timestamp=$(stat -c %Y "$HOME/.bashrc")
fi
}
PROMPT_COMMAND='prompt_command'
次に、次回ログインすると、bashはこの関数とプロンプトフックをロードし、プロンプトが表示されるたびに$ HOME / .bashrcが更新されたことを確認します。存在する場合は、構文エラーがあるかどうかをすばやく確認します(set -n
オプション)、ファイルがきれいになるとインポートされます。
構文チェックに関係なく、内部タイムスタンプ変数を更新してファイルを再保存/更新する前にファイルをロードしようとしません。