例如,我的.bashrc
文件中有一个函数:
function open_bashrc() {
gedit ~/.bashrc
source ~/.bashrc
}
所以无论我在哪里,如果我输入open_bashrc
,那么它就会打开该.bashrc
文件。我可以打开它并更改它,但是保存并单击关闭后,它不会执行第二步source .bashrc
。相反,我必须source ~/.bashrc
自己打字。为什么?功能出了什么问题?
答案1
我的别名文件中有这个并且它有效:
alias bashrc='vim ~/.bashrc && source ~/.bashrc'
答案2
有没有可能,在您的执行上下文中,gedit
它没有解析为可执行的 gedit 程序,而是解析为 shell 脚本、函数或别名,在背景?否则,我看不出任何理由,为什么来源不应被执行。
实际上,我不会&&
像 polvoazul 建议的那样使用 。此解决方案的效果是,仅当 gedit 返回退出代码为零时才获取 .bashrc。虽然我们当然应该希望,如果一切顺利的话,一个行为良好的程序应该以 0 退出,但我已经看到了更多不关心退出代码的程序,并且 gedit 的手册页没有提及退出代码,这从技术上讲,意味着退出代码未指定。这不是我希望我的功能依赖的东西......