【发布时间】:2013-03-05 11:13:08
【问题描述】:
我想重置 shell,在我注销/登录时,从头开始重新加载别名、函数。
但不要谈论source ~/.bashrc或. ~/.bashrc!
为什么?因为source 或. 只是用新的函数、别名等丰富了当前的shell。
仅供参考,你可以把这个函数放在你的 bashrc 中:
function foo {
echo "foo";
}
然后执行source ~/.bashrc 或. ~/.bashrc。是的,foo 正在工作。然后现在,编辑您的.bashrc,并将 foo 替换为 bar,得到:
function bar {
echo "bar";
}
您现在可以键入 foo,并看到 函数 foo 仍在工作,尽管它在 .bashrc 文件中不再存在。这就是我想表明的观点。
我尝试了exec bash;,但它没有加载.bashrc 文件。而exec bash;source ~/.bashrc; 显然不起作用,因为exec 杀死了当前进程(source 永远不会被调用)。
【问题讨论】:
-
你试过 bash --login 吗?
-
+1 @BigMike 这会创建一个新的 bash 实例,就像您刚刚登录一样。这是您想要的吗?
-
该死的,你很好。请写
bash --login在甜蜜的答案@BigMike,我可以选择你!