如何在编辑后自动“源”〜/ .bashrc?

时间:2011-11-22 10:21:07

标签: macos bash alias

我想创建一个执行以下操作的别名:

  • 使用〜/ .bashrc 打开TextMate并允许我对其进行编辑
  • 关闭TextMate后,“来源”〜/ .bashrc (例如,如果我添加新的别名,它会立即可用)

我尝试了以下内容:

alias b="/usr/bin/mate -w ~/.bashrc; source ~/.bashrc"

但它不起作用:当我关闭TextMate时,shell不会返回。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我毫不犹豫地建议它,但如果这是真正想要的功能,您可以通过将PROMPT_COMMAND变量设置为某些内容来实现类似的功能聪明。

每次shell显示shell prompt时都会运行

PROMPT_COMMAND所以,如果只有在点击 Enter 或执行命令后才更新shell,这个应该差不多了。

export PROMPT_COMMAND="source ~/.bashrc"放入~/.bashrc文件中。将其重新发送到您希望自动更新行为的shell会话中。

这很浪费 - 它会在每次提示时重新提供文件。如果您可以让编辑者将版本保留在特定文件中,请说~/.bashrc~(其中第一个~表示您的主目录,最后一个~只是~,备份文件名的常见选择)然后你可以做更像(未经测试)的事情:

export PROMPT_COMMAND="[ ~/.bashrc -nt ~/.bashrc~ ] && touch ~/.bashrc~ && source ~/.bashrc "

然后每次运行时stat(2)两个文件,检查哪一个更新,并且仅在~/.bashrc比其备份更新时才重新获取。 touch命令用于使备份看起来更新并且再次使测试失败。

答案 1 :(得分:1)

您是否经常编辑.bashrc文件以至于需要别名?为什么不编辑文件,保存,然后exec bash