4

ログアウト/ログインして、エイリアス、関数を最初からリロードするときに、シェルをリセットしたい。

しかし、について話さsource ~/.bashrcないで. ~/.bashrcください !

なんで ?新しい関数、エイリアスなどを使用して、現在のシェルを強化するためsource、または単に強化するためです。.


参考までに、この関数を bashrc に入れることができます:

function foo {
  echo "foo";
}

次に、source ~/.bashrcまたはを実行し. ~/.bashrcます。ええ、フーは働いています。次に、 edityour を編集し、 foobar.bashrcに置き換えて、次のようにします。

function bar {
  echo "bar";
}

foo と入力すると、関数 foo が.bashrcファイルに存在しなくなったにもかかわらず、まだ機能していることがわかりました。それが私が示したかったポイントです。


試しましexec bash;たが、ファイルが読み込まれません.bashrc。現在のプロセスを強制終了するため、明らかに機能しません(呼び出さexec bash;source ~/.bashrc;れることはありません)。execsource

4

2 に答える 2

7

OP希望として

bash --login 

注意: 端末 (xterm など) 内で bash を実行している場合は、端末に-lsパラメーター (または同等のもの) を提供する必要もあります。(例xterm -ls)

于 2013-03-05T13:50:05.850 に答える
1

次のスクリプトを記述します。

while true; do
    bash
    if [ $? -ne 123 ]; then
        break
    fi
done

実行可能ビットを設定し、シェルとして設定します。次に、にエイリアスを追加します~/.bashrc

alias resetterm="exit 123"

これには、常に 1 つの追加の bash プロセスを実行するだけで済みます。リセットするたびに、新しい bash が実行され、古いプロセスは終了します。

于 2013-03-05T13:55:15.660 に答える