web-dev-qa-db-ja.com

スクリプトを呼び出すシェルで.bashrcをリロードする方法

スクリプトを呼び出したシェルに、スクリプト内から.bashrcをリロードさせるにはどうすればよいですか?

私が好きなようにすべてを設定する「新しいボックス」スクリプトを作成しようとしています。 .bashrcのリロードを除くすべてが機能します。

私は. ~/.bashrcまたはexec bashまたは変更を適用する他の方法を「ただ」実行できることを知っていますafterスクリプトを実行します。しかし、それは一種のワンボタン修正を行う目的を打ち負かし、最後のステップにねじ込むためだけにここまで来ることは私を笑わせる


source ~./bashrcexec bashのすべてをスクリプトに追加しようとしましたが、呼び出し元のシェルではなく、スクリプトの環境にのみリロードするため、喜びはありません。

私はまだかなり新しいので、おそらく答えをグーグルで検索できない理由を説明する非常に明白なものです>。<

どんな助けも大歓迎です。

1
Wayne

これはすべてのために働くとは限りません。そして、私がやってはいけないことをしているのかもしれません。

script.shでは、. script.shの代わりにbash script.shで呼び出すと、すべてが実行され、それに応じて更新されるようです。

わーい!

2
Wayne

ばかげているように聞こえますが、私もこの辺りでは新しいですが、必要な環境をスクリプトから直接エクスポートし、後で使用するために.bashrcに追加した場合はどうでしょうか。

たとえば、環境変数が存在するかどうかを確認してロードします:

### MySQL
if [ -z "$MYSQL_HOME" ]; then
    export MYSQL_HOME="/usr/local/mysql"
    export PATH="$MYSQL_HOME/bin:$PATH"
fi

そして、このセグメントコードも.bashrcにコピーします...

編集

私は実際にこれにつまずいた スクリプトの〜/ .bashrcファイルを更新する

0
kostia