一度にたくさんのターミナルを開いていることに気づきました。 。bashrcを更新するときは、各端末に移動して実行する必要があります
. .bashrc
新しい。bashrcで端末を調達します。
これは一種の苦痛であり、時間もかかります。それぞれに移動したり、ログアウトして最初からやり直したりせずに、開いているすべての端末を新しい。bashrcファイルで調達する方法があるかどうか疑問に思いました。
terdonのアプローチ は適切な状況でうまく機能しますが、たとえば。bashrcが[〜#〜] path [〜#〜]変数、それはかなり早くエラーを引き起こします。
単にファイルをリソースする代わりに、最初にその変更時刻を確認して、最後にソースされたバージョンのmtimeと比較することができます。
これを行うには、これを〜/ .bashrcに追加します。
bashrc_sourced=$(stat -c %Y ~/.bashrc)
Prompt_COMMAND='
test $(stat -c %Y ~/.bashrc) -ne $bashrc_sourced && source ~/.bashrc
'
bashrc_sourced=$(stat -f %m ~/.bashrc)
Prompt_COMMAND='
test $(stat -f %m ~/.bashrc) -ne $bashrc_sourced && source ~/.bashrc
'
次に、最後にもう一度手動でリソースを割り当てます。
一般に、オペレーティングシステムを含めることを忘れないでください。正解は、多くの場合、システムによって異なります。 bashは、ほとんどのLinux、OS X、および多くのUNIXでデフォルトで使用されることに注意してください。
とにかく、あなたの場合、OSは無関係であるはずなので、あなたがする必要があるのは Prompt_COMMAND 変数を設定することです:
Bashは、Prompt_COMMANDと呼ばれる環境変数を提供します。この変数の内容は、Bashがプロンプトを表示する直前に通常のBashコマンドとして実行されます。
したがって、実行するコマンドは~/.bashrc
をソーシングしているため、この行を~/.bashrc
に追加します(.
はsource
の単なるエイリアスです)。
Prompt_COMMAND='source ~/.bashrc'
これで、Bashがプロンプトを表示するたびに、最初に~/.bashrc
を再読み取りします。開いている端末を取得するには(afterの後に開いている限り、Prompt_COMMAND
を設定します)、任意のコマンドを実行するか、単に Enter。
警告:~/.bashrc
の複雑さによっては、ファイル内のコマンドが繰り返し実行されるため、これにより顕著な遅延が追加される可能性があります。
KISS
これらのいずれかまたは両方を/ etc/profileおよび〜/ .bashrcのいずれかまたは両方に配置します
alias sProf='source /etc/profile'
alias sBrc='source ~/.bashrc'
別のアプローチ:
コマンドと改行を含めるために矢印の間のすべてを含むターミナルラインをコピーし、それをすべてのターミナルに中クリックします。
<---------------------------->
$ source ~/.bashrc | terminal border