すべての環境変数を削除してrcfileをロードします。

すべての環境変数を削除してrcfileをロードします。

複数の環境セットを実行する必要があります。これには2つのbashrcファイルセットがあり、bashrc_a起動bashrc_b時にbashrc_amakeを介して.bashrc実行します。

source bashrc_a

環境からbashrc_a切り替える必要がありますが、環境変数を環境に保持したくbashrc_bありません。このために私は努力しましたbashrc_abashrc_b

env -i bash --rcfile bashrc_b

ところが問題はこの場合には私が負けるということだ。みんなbashrc_a.I don't have HOME, I don't havePATHなどの環境変数。

私が試したもう一つのこと

env -i bash --login --rcfile bashrc_b

ただし、これを行うと、ログインシェルがファイルを見つけてからファイルを見つけてからファイルを~/.bashrc削除したbashrc_aため、役に立ちません。TERMenv -i

それで私の質問はどうすればいいですか?削除する bashrc_aそしてロードbashrc_b

ベストアンサー1

説明で見るとあなたにはないようです。実際にbashrc_bから環境をロードしたいですbashrc_a

あなたが仮定欲しくないソースまたはbashrc_aまたはから。bashrc_b.bashrc.bash_profile

  1. bashシェルを正常に起動します。
  2. bashrc_a環境を起動しますbash --rcfile bashrc_a
  3. bashrc_b環境を切り替えたい場合
    1. exitまず
    2. bash --rcfile bashrc_b

欲しいなら維持する周辺環境をbashrc_a確認し、別の端末を開いて実行してくださいbash --rcfile bashrc_b

別のオプションは、rc各環境に対応する「削除」ファイルを作成することです。これら2つのファイルは環境の設定を解除またはリセットして、bashrc_xそのファイルで実行されたすべての操作をキャンセルします。その後、source bashrc_aこれを行うことができます(またはソースコードのみが必要です)。source unbashrc_asource bashrc_bbashrc_bunbashrc_a

しかし、これを書いて最新の状態に保つのは難しいかもしれません。

おすすめ記事