回答:
いいえ、可能ではないと思います。それもそうではありません。これは基本的に、すでに起動されアクティブなシェルにコードを挿入する方法に相当し、重大なセキュリティ上の脅威をもたらします。
多くのデーモンプロセスがこれを行うように設計されています。一般的な方法は、HUP(ハングアップ)信号を送信して、構成ファイルを再度読み取った後に再起動することです。次のようなものでこれをトリガーできます:
pkill -HUP daemon_name
ただし、bashでこれを行うと、bashはシャットダウンします。これはデーモンではなく、システムはデーモンのように動作しません。
長い点と短い点は、おそらく時間が経過してもそれほど頻繁にbashrcに変更を加え続けることができず、それほど問題にならないことです。変更を行う場合、実行中のシェルで変更が必要な場合は、ファイルを再ソースする必要があります。
bashには何も組み込まれていません。を.bashrc
介して、プロンプトが表示されるたびにリロードするように指示できますPROMPT_COMMAND
。
## Create a timestamp file, dated like the .bashrc that was read.
## There is a small race condition: if .bashrc is modified as the shell is
## just starting, before getting to this line, this instance won't detect
## that modification.
bashrc_timestamp_file=~/.bashrc-timestamp-$$
touch -r ~/.bashrc "$bashrc_timestamp_file"
## Remove the timestamp file on exit. The timestamp file will be left
## behind on a crash.
trap 'rm "$bashrc_timestamp_file"' EXIT HUP TERM INT QUIT
maybe_reload_bashrc () {
if [[ ~/.bashrc -nt $bashrc_timestamp_file ]]; then
. ~/.bashrc
fi
}
if [[ $PROMPT_COMMAND != *maybe_reload_bashrc* ]]; then
PROMPT_COMMAND="maybe_reload_bashrc
$PROMPT_COMMAND"
fi
これは、追加のファイルが価値のあるものにアクセスするのに多くの問題です。また、それはあなたに制約を課します.bashrc
:ファイルはべき等でなければなりません、すなわち、あなたは悪影響なしでそれを複数回ロードすることができなければなりません。たとえば、上記のスニペットでは、まだ追加さmaybe_reload_bashrc
れていPROMPT_COMMAND
ない場合にのみ追加するように注意しています。
touch -r ~/.bashrc $bashrc_timestamp_file
~/.bashrc
.bashrc
.bashrc