変更後に.bash_profileを自動的に取得できますか?

変更後に.bash_profileを自動的に取得できますか?

私はこれを行う方法があるかどうか常に疑問に思いました。source変更後は入力したくありませんでした。.bash_profile

ベストアンサー1

自動的に発生するように少しの作業を行うだけです。PROMPT_COMMANDそして-ntタグ付きファイルを含めます。~/.bash_profileファイルに入れると次のようになります。

touch /tmp/bash_profile-$$
resource_profile() {
    [ ~/.bash_profile -nt /tmp/bash_profile-$$ ] && source ~/.bash_profile
}
PROMPT_COMMAND=resource_profile

/tmpその後、シェルが起動すると空のタグファイルが生成されます。PIDそれを識別するシェル。

シェルはresource_profileプロンプトを表示する前に毎回この機能を実行します。この機能は、最後にインポートして更新した後()タグファイルが変更されたことを確認し~/.bash_profile、変更された場合は自動的に変更します。ファイルをインポートすると、次にタグファイルが再更新されます。-ntsource ~/.bash_profile

これは完璧な方法ではありません。ファイルシステムによっては、ファイルソースの直後に変更が検出されない場合があります。ファイルはコマンドを実行するか、を押した後にのみ確認されますEnter。これは可能な瞬間に近いですが、正確に瞬間的ではありません。

システムの設定ファイルによっては、他の人がディレクトリにアクセスできない場所にタグファイルを配置することを好む場合があります。次のようなものを作成することも可能です。stat(1)もしそうなら、タグファイルをすべて使用しないでください。

おすすめ記事