「source .bashrc」を編集して保存した後、どのように自動的に実行できますか?

「source .bashrc」を編集して保存した後、どのように自動的に実行できますか?

bashrcファイルを編集して保存するたびに、「source .bashrc」を自動的に実行できますか?

ベストアンサー1

同じ方法もう一つの答え.bashrcへのエディタの呼び出しを2段階のプロセスに置き換える関数が作成されることを明記してください。

  1. .bashrcでエディタを開きます。
  2. ソース.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オプション)、ファイルがきれいになるとインポートされます。

構文チェックに関係なく、内部タイムスタンプ変数を更新してファイルを再保存/更新する前にファイルをロードしようとしません。

おすすめ記事